Sdílet prostřednictvím


APPROX_PERCENTILE_CONT (Transact-SQL)

platí pro: SQL Server 2022 (16.x) Azure SQL Databasekoncový bod služby Azure SQL Managed InstanceSQL Analytics ve službě Microsoft FabricWarehouse 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.

Transact-SQL konvence syntaxe

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;