Megosztás a következőn keresztül:


APPROX_PERCENTILE_CONT (Transact-SQL)

Vonatkozik a következőkre: SQL Server 2022 (16.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL analytics endpoint in Microsoft FabricWarehouse in Microsoft Fabric SQLdatabase in Microsoft Fabric

Ez a függvény hozzávetőleges interpolált értéket ad vissza egy csoport értékeinek készletéből a percentilisérték és a rendezési specifikáció alapján. Mivel ez egy hozzávetőleges függvény, a kimenet egy bizonyos megbízhatósággal kötött rangsoralapú hibán belül lenne. A függvény által visszaadott percentilisérték az oszlopértékek folyamatos eloszlásán alapul, és az eredmény interpolálva lesz. Emiatt előfordulhat, hogy a kimenet nem az adathalmaz egyik értéke. A függvény egyik gyakori használati esete az adat-kiugró értékek elkerülése. Ez a függvény a nagy adathalmazok PERCENTILE_CONT alternatívaként használható, ahol a gyors válaszidővel rendelkező, elhanyagolható hiba elfogadható a lassú válaszidővel rendelkező pontos percentilisértékhez képest.

Transact-SQL szintaxis konvenciók

Szemantika

APPROX_PERCENTILE_CONT (numeric_literal)
WITHIN GROUP (ORDER BY order_by_expression [ASC|DESC]) 

érvelés

numeric_literal

A kiszámítandó percentilis. Az értéknek 0,0 és 1,0 között kell lennie.

order_by_expression

Numerikus értékek listáját adja meg a percentilis rendezéséhez és kiszámításához. Csak egy order_by_expression engedélyezett. Az alapértelmezett rendezési sorrend növekvő (ASC). A kifejezésnek pontos vagy hozzávetőleges numerikus típusra kell kiértékelnie, más adattípusok nem engedélyezettek. A pontos numerikus típusok a következők: int, bigint, smallint, tinyint, numerikus, bit, decimális, kismérték és pénz. A közelítő numerikus típusok lebegőpontosak és valósak.

Visszatérési típusok

float(53)

Megjegyzések

Az adathalmazban lévő null értékek figyelmen kívül lesznek hagyva.

A hozzávetőleges percentilisfüggvények KLL-vázlatot használnak. A vázlat az adatstream olvasásával készült. A használt algoritmus miatt ez a függvény kevesebb memóriát igényel, mint a nem hozzávetőleges megfelelője (PERCENTILE_CONT).

Ez a függvény rangalapú hibagaranciát biztosít, nem értékalapú. A függvény implementációja legfeljebb 1,33% hibát garantál.

Ismert viselkedések

  • Előfordulhat, hogy a függvény kimenete nem azonos az összes végrehajtásban. Ezekhez a függvényekhez használt algoritmus a KLL-vázlat , amely egy véletlenszerű algoritmus. A vázlat készítésekor a rendszer véletlenszerű értékeket választ ki. Ezek a függvények rangalapú hibagaranciát biztosítanak, nem értékalapúak.
  • A függvény implementációja legfeljebb 1,33% hibahatárt garantál egy 99% megbízhatóságon belül.

Kompatibilitási támogatás

A 110-es és újabb kompatibilitási szinten a WITHIN GROUP egy fenntartott kulcsszó. További információ: ALTER DATABASE kompatibilitási szint (Transact-SQL).

Példák

Az alábbi példa létrehoz egy táblát, kitölti és végrehajt egy minta lekérdezést.

SET NOCOUNT ON
GO
DROP TABLE IF EXISTS tblEmployee;
GO
CREATE TABLE tblEmployee (
EmplId INT IDENTITY(1,1) PRIMARY KEY CLUSTERED,
DeptId INT,
Salary int);
GO
INSERT INTO tblEmployee
VALUES (1, 31),(1, 33), (1, 18), (2, 25),(2, 35),(2, 10), (2, 10),(3,
1), (3,NULL), (4,NULL), (4,NULL);
GO
SELECT DeptId,
APPROX_PERCENTILE_CONT(0.10) WITHIN GROUP(ORDER BY Salary) AS 'P10',
APPROX_PERCENTILE_CONT(0.90) WITHIN GROUP(ORDER BY Salary) AS 'P90'
FROM tblEmployee
GROUP BY DeptId;