Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre: SQL Server 2022 (16.x)
Azure SQL Database
Azure SQL Managed Instance
SQL analytics endpoint in Microsoft Fabric
Warehouse in Microsoft Fabric SQL
database 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