Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro: SQL Server 2022 (16.x)
Azure SQL Database
koncový bod služby Azure SQL Managed Instance
SQL Analytics ve službě Microsoft Fabric
Warehouse v Microsoft Fabric
Tato funkce vrátí hodnotu ze sady hodnot ve skupině na základě zadaného percentilu a specifikace řazení. Vzhledem k tomu, že se jedná o přibližnou funkci, výstup by byl v souladu s chybou na základě pořadí vázaný s určitou jistotou. Vzhledem k tomu, že tento přibližný percentil vychází z diskrétního rozdělení hodnot sloupce, bude výstupní hodnota rovna jedné z konkrétních hodnot ve sloupci. Tuto funkci lze použít jako alternativu k PERCENTILE_DISC pro velké datové sady, kde je zanedbatelná chyba s rychlejší odezvou přijatelná ve srovnání s přesnou percentilovou hodnotou s pomalou dobou odezvy.
Syntaxe
APPROX_PERCENTILE_DISC (numeric_literal)
WITHIN GROUP (ORDER BY order_by_expression [ASC|DESC])
Důvod
numeric_literal
Percentil, který se má vypočítat. Hodnota musí být v rozsahu od 0,0 do 1,0. k výpočtu 10. percentilu by předaná hodnota byla 0,10.
order_by_expression
Určuje seznam hodnot, které se mají seřadit a vypočítat percentil. Výchozí pořadí řazení je vzestupné (ASC). Jsou povoleny pouze číselné datové typy. Výraz se musí vyhodnotit na podporovaný přesný nebo přibližný číselný typ bez povolených jiných datových typů. Podporované přesné číselné typy jsou int, bigint, smallint, tinyint, bit, smallmoney a peníze. Podporované přibližné číselné typy jsou plovoucí a reálné. Desetinné a plovoucí datové typy nejsou podporovány.
Návratové typy
Návratový typ je určen typem order_by_expression .
Poznámky
Všechny hodnoty null v sadě dat se ignorují.
Přibližné percentilové funkce používají náčrtky KLL. Skica je vytvořená čtením datového proudu.
Tato funkce poskytuje záruky chyb založených na pořadí, které nejsou založené na hodnotách. Implementace funkce zaručuje až 1,33% chybovost v rozsahu 99% pravděpodobnosti.
Známé chování
Výstup funkcí nemusí být ve všech spuštěních stejný. Algoritmus použitý pro tyto funkce je skica KLL , což je randomizovaný algoritmus. Při každém sestavení skicy se vyberou náhodné hodnoty. Tyto funkce poskytují záruky chyb založených na pořadí, které nejsou založené na hodnotách.
Implementace funkce zaručuje až 1,33% hranice chyb v rozsahu 99% spolehlivosti.
Podpora kompatibility
V rámci úrovně kompatibility 110 a vyšší je UVNITŘ GROUP rezervované klíčové slovo. Další informace naleznete v tématu ALTER DATABASE Compatibility Level (Transact-SQL)..
Příklady
Následující příklad vytvoří tabulku, naplní ji a spustí ukázkový dotaz.
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