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í přibližnou interpolovanou hodnotu ze sady hodnot ve skupině na základě hodnoty 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. Hodnota percentilu vrácená touto funkcí je založena na průběžném rozdělení hodnot sloupců a výsledek by byl interpolován. Z tohoto důvodu nemusí být výstupem jedna z hodnot v sadě dat. Jedním zběžnýchch Tuto funkci lze použít jako alternativu k PERCENTILE_CONT 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_CONT (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.
order_by_expression
Určuje seznam číselných hodnot pro řazení a výpočet percentilu. Je povolen pouze jeden order_by_expression . Výchozí pořadí řazení je vzestupné (ASC). Výraz musí být vyhodnocen jako přesný nebo přibližný číselný typ bez povolených jiných datových typů. Přesné číselné typy jsou int, bigint, smallint, tinyint, numeric, bit, decimal, smallmoney a money. Přibližné číselné typy jsou plovoucí a reálné.
Návratové typy
float(53)
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. Vzhledem k použitému algoritmu vyžaduje tato funkce méně paměti než jeho neproximovaný protějšek (PERCENTILE_CONT).
Tato funkce poskytuje záruky chyb založených na pořadí, které nejsou založené na hodnotách. Implementace funkce zaručuje až chybu 1.33%.
Známé chování
- Výstup funkce 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_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;