PERCENTILE_CONT (Transact-SQL)
Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-Endpunkt in Microsoft FabricWarehouse in Microsoft Fabric
Berechnet ein Quantil auf Grundlage einer kontinuierlichen Verteilung des Spaltenwerts in SQL Server. Das Ergebnis wird interpoliert und stimmt möglicherweise mit keinem der konkreten Werte in der Spalte überein.
Transact-SQL-Syntaxkonventionen
Syntax
PERCENTILE_CONT ( numeric_literal )
WITHIN GROUP ( ORDER BY order_by_expression [ ASC | DESC ] )
OVER ( [ <partition_by_clause> ] )
Hinweis
Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.
Argumente
numeric_literal
Das zu berechnende Quantil. Der Wert muss zwischen 0,0 und 1,0 liegen.
WITHIN GROUP ( ORDER BY order_by_expression [ ASC | DESC ] )
Gibt eine Liste von numerischen Werten für die Sortierung und Berechnung des Quantils an. Es ist nur ein order_by_expression-Element zulässig. Der Ausdruck muss einen exakten oder ungefähren numerischen Typ ergeben. Andere Datentypen sind nicht zulässig. Die exakten numerischen Typen sind int, bigint, smallint, tinyint, numeric, bit, decimal, smallmoney und money. Die ungefähren numerischen Typen sind float und real. Standardmäßig wird die Sortierung in aufsteigender Reihenfolge vorgenommen.
OVER (<partition_by_clause>)
Teilt das von der FROM-Klausel erzeugte Resultset in Partitionen, auf die die Quantilfunktion angewendet wird. Weitere Informationen finden Sie unter OVER-Klausel (Transact-SQL). Die <ORDER BY-Klausel> und die<ROWS- oder RANGE-Klausel> der OVER-Syntax können nicht in einer PERCENTILE_CONT-Funktion angegeben werden.
Rückgabetypen
float(53)
Kompatibilitätsunterstützung
Unter Kompatibilitätsgrad 110 und höher ist WITHIN GROUP ein reserviertes Schlüsselwort. Weitere Informationen finden Sie unter ALTER DATABASE-Kompatibilitätsgrad (Transact-SQL).
Allgemeine Hinweise
Alle NULL-Werte im Dataset werden ignoriert.
PERCENTILE_CONT ist nicht deterministisch. Weitere Informationen finden Sie unter Deterministic and Nondeterministic Functions.
Beispiele
A. Einfaches Syntaxbeispiel
Im folgenden Beispiel wird das durchschnittliche Mitarbeitergehalt in jeder Abteilung mithilfe von PERCENTILE_CONT und PERCENTILE_DISC ermittelt. Diese Funktionen geben möglicherweise nicht den gleichen Wert zurück. PERCENTILE_CONT interpoliert den geeigneten Wert, der im Dataset vorhanden sein kann, während PERCENTILE_DISC immer einen tatsächlichen Wert aus dem Dataset zurückgibt.
USE AdventureWorks2022;
SELECT DISTINCT Name AS DepartmentName
,PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY ph.Rate)
OVER (PARTITION BY Name) AS MedianCont
,PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY ph.Rate)
OVER (PARTITION BY Name) AS MedianDisc
FROM HumanResources.Department AS d
INNER JOIN HumanResources.EmployeeDepartmentHistory AS dh
ON dh.DepartmentID = d.DepartmentID
INNER JOIN HumanResources.EmployeePayHistory AS ph
ON ph.BusinessEntityID = dh.BusinessEntityID
WHERE dh.EndDate IS NULL;
Dies ist ein Auszug aus dem Resultset.
DepartmentName MedianCont MedianDisc
-------------------- ---------- ----------
Document Control 16.8269 16.8269
Engineering 34.375 32.6923
Executive 54.32695 48.5577
Human Resources 17.427850 16.5865
B. Einfaches Syntaxbeispiel
Im folgenden Beispiel wird das durchschnittliche Mitarbeitergehalt in jeder Abteilung mithilfe von PERCENTILE_CONT und PERCENTILE_DISC ermittelt. Diese Funktionen geben möglicherweise nicht den gleichen Wert zurück. PERCENTILE_CONT interpoliert den geeigneten Wert, der im Dataset vorhanden sein kann, während PERCENTILE_DISC immer einen tatsächlichen Wert aus dem Dataset zurückgibt.
-- Uses AdventureWorks
SELECT DISTINCT DepartmentName
,PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY BaseRate)
OVER (PARTITION BY DepartmentName) AS MedianCont
,PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY BaseRate)
OVER (PARTITION BY DepartmentName) AS MedianDisc
FROM dbo.DimEmployee;
Dies ist ein Auszug aus dem Resultset.
DepartmentName MedianCont MedianDisc
-------------------- ---------- ----------
Document Control 16.826900 16.8269
Engineering 34.375000 32.6923
Human Resources 17.427850 16.5865
Shipping and Receiving 9.250000 9.0000
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für