Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: sql Server 2022 (16.x)
Azure SQL Database
punkt końcowy analizy SQL
SQL w usłudze Microsoft Fabric
Ta funkcja zwraca wartość z zestawu wartości w grupie na podstawie podanej specyfikacji percentylu i sortowania. Ponieważ jest to przybliżona funkcja, dane wyjściowe byłyby w obrębie błędu opartego na klasyfikacji powiązanego z pewnym zaufaniem. Ponieważ przybliżony percentyl jest oparty na dyskretnym rozkładzie wartości kolumn, wartość wyjściowa będzie równa jednej z określonych wartości w kolumnie. Ta funkcja może służyć jako alternatywa dla PERCENTILE_DISC w przypadku dużych zestawów danych, w których niewielki błąd z szybszą odpowiedzią jest akceptowalny w porównaniu do dokładnej wartości percentylu z wolnym czasem odpowiedzi.
Transact-SQL konwencje składni
Składnia
APPROX_PERCENTILE_DISC (numeric_literal)
WITHIN GROUP (ORDER BY order_by_expression [ASC|DESC])
Argumentacja
numeric_literal
Percentyl do obliczenia. Wartość musi należeć do zakresu od 0,0 do 1,0. aby obliczyć 10. percentyl, przekazana wartość to 0,10.
order_by_expression
Określa listę wartości do sortowania i obliczania percentylu. Domyślna kolejność sortowania to rosnąco (ASC). Dozwolone są tylko typy danych liczbowych. Wyrażenie musi zostać obliczone na obsługiwany dokładny lub przybliżony typ liczbowy bez dozwolonych innych typów danych. Obsługiwane dokładne typy liczbowe to int, bigint, smallint, tinyint, bit, smallmoney i pieniądze. Obsługiwane przybliżone typy liczbowe to liczba zmiennoprzecinkowa i rzeczywista. Typy danych dziesiętnych i zmiennoprzecinkowych nie są obsługiwane.
Typy zwracane
Typ zwracany jest określany przez typ order_by_expression .
Uwagi
Wszystkie wartości null w zestawie danych są ignorowane.
Przybliżone funkcje percentylu używają szkicu KLL. Szkic jest tworzony przez odczytywanie strumienia danych.
Ta funkcja zapewnia gwarancje błędów oparte na klasyfikacji, które nie są oparte na wartości. Implementacja funkcji gwarantuje maksymalnie 1,33% współczynnik błędów w ramach prawdopodobieństwa 99%.
Znane zachowania
Dane wyjściowe funkcji mogą nie być takie same we wszystkich wykonaniach. Algorytm używany dla tych funkcji to szkic KLL , który jest algorytmem losowym. Za każdym razem, gdy szkic jest tworzony, wybierane są losowe wartości. Te funkcje zapewniają gwarancji błędów opartych na klasyfikacji, które nie są oparte na wartości.
Implementacja funkcji gwarantuje maksymalnie 1,33% granic błędów w zakresie 99% zaufania.
Obsługa zgodności
W obszarze poziom zgodności 110 i nowszych funkcja WITHIN GROUP jest zastrzeżonym słowem kluczowym. Aby uzyskać więcej informacji, zobacz ALTER DATABASE Compatibility Level (Transact-SQL)..
Przykłady
Poniższy przykład tworzy tabelę, wypełnia ją i uruchamia przykładowe zapytanie.
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