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


APPROX_PERCENTILE_DISC (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 a megadott percentilis- és rendezési specifikáció alapján adja vissza a csoport értékeinek értékét. 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. Mivel ez a hozzávetőleges percentilis az oszlopértékek diszkrét eloszlásán alapul, a kimeneti érték megegyezik az oszlop egyik konkrét értékével. Ez a függvény a PERCENTILE_DISC alternatívaként használható nagy adathalmazok esetében, 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_DISC (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. a 10. percentilis kiszámításához az átadott érték 0,10 lesz.

order_by_expression

Megadja a percentilis rendezésére és kiszámítására vonatkozó értékek listáját. Az alapértelmezett rendezési sorrend növekvő (ASC). Csak numerikus adattípusok engedélyezettek. A kifejezésnek támogatott pontos vagy hozzávetőleges numerikus típusra kell kiértékelnie, más adattípusok nem engedélyezettek. A támogatott pontos numerikus típusok a következők: int, bigint, smallint, tinyint, bit, smallmoney és money. A támogatott közelítő numerikus típusok lebegőpontosak és valósak. A decimális és a lebegőpontos adattípusok nem támogatottak.

Visszatérési típusok

A visszatérési típust a order_by_expression típus határozza meg.

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.

Ez a függvény rangalapú hibagaranciát biztosít, nem értékalapú. A függvény implementációja legfeljebb 1,33% hibaarányt garantál 99% valószínűségen belül.

Ismert viselkedések

  • Előfordulhat, hogy a függvények kimenete nem azonos minden 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 futtatja a 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_DISC(0.10) WITHIN GROUP(ORDER BY Salary) AS 'P10',
APPROX_PERCENTILE_DISC(0.90) WITHIN GROUP(ORDER BY Salary) AS 'P90'
FROM tblEmployee
GROUP BY DeptId