Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
Azure Synapse Analytics
SQL Analytics-végpont a Microsoft Fabricben
Raktár a Microsoft Fabricben
SQL-adatbázis a Microsoft Fabricben
A PERCENTILE_DISC függvény egy adott percentilis értékeket számol ki egy egész sorhalmazban vagy annak különálló partícióin belül rendezett értékekre. Egy adott PPERCENTILE_DISC percentilisérték esetén a záradékban lévő kifejezésértékeket rendeziORDER BY. Ezután a legkisebb CUME_DIST megadott értékkel adja vissza (ugyanahhoz a rendezési specifikációhoz képest), amely nagyobb vagy egyenlő a P értéknél. Kiszámítja például PERCENTILE_DISC (0.5) egy kifejezés 50. percentilisét (vagyis mediánját).
PERCENTILE_DISC az oszlopértékek diszkrét eloszlása alapján számítja ki a percentilis értékét. Az eredmény egy adott oszlopértéknek felel meg.
Transact-SQL szintaxis konvenciók
Szemantika
Aggregációs függvény szintaxisa:
PERCENTILE_DISC ( numeric_literal )
WITHIN GROUP ( ORDER BY order_by_expression [ ASC | DESC ] )
Elemzési függvény szintaxisa:
PERCENTILE_DISC ( numeric_literal )
WITHIN GROUP ( ORDER BY order_by_expression [ ASC | DESC ] )
OVER ( [ <partition_by_clause> ] )
Arguments
betű szerinti
A kiszámítandó percentilis. Az értéknek 0,0 és 1,0 között kell lennie.
CSOPORTON BELÜL ( ORDER BY order_by_expression [ ASC | DESC ] )
Megadja a percentilis rendezésére és kiszámítására vonatkozó értékek listáját. Csak egy order_by_expression engedélyezett. Az alapértelmezett rendezési sorrend növekvő. Az értékek listája a rendezési művelethez érvényes adattípusok bármelyikét tartalmazhatja.
VÉGE ( <partition_by_clause> )
FROM A záradék eredményhalmazát partíciókra osztja. A percentilisfüggvény ezekre a partíciókra lesz alkalmazva. További információ: SELECT – OVER záradék. Az <ORDER BY záradék> és <a sorok vagy tartomány záradék>nem adható meg egy PERCENTILE_DISC függvényben.
Note
Ez a OVER záradék opcionális a Fabric Data Warehouse-ben és az SQL analitikai végpontban.
PERCENTILE_DISC használható aggregált vagy analitikus (ablakos) formában.
Visszatérési típusok
A visszatérési típust a order_by_expression típus határozza meg.
Kompatibilitási támogatás
A 110-es és újabb WITHIN GROUP kompatibilitási szinten fenntartott kulcsszó. További információ: ALTER DATABASE kompatibilitási szint.
Megjegyzések
Az adathalmazban lévő null értékek figyelmen kívül lesznek hagyva.
PERCENTILE_DISC nemdeterminista. További információ: Determinisztikus és nemdeterminista függvények.
Az aggregált formájaPERCENTILE_DISC, amely kihagyja a OVER záradékot, nem támogatott az SQL Server, Azure SQL Database, Azure SQL Managed Instance vagy SQL database in Fabric.
Példák
Példa alapszintű szintaxisra
Az alábbi példa az egyes részlegek medián alkalmazotti fizetését használja PERCENTILE_CONT és PERCENTILE_DISC keresi. Előfordulhat, hogy nem ugyanazt az értéket adja vissza:
-
PERCENTILE_CONTa megfelelő értéket adja vissza, még akkor is, ha az nem szerepel az adathalmazban. -
PERCENTILE_DISCegy tényleges beállított értéket ad vissza.
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;
Íme egy részleges eredményhalmaz.
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
Példák: Azure Synapse Analytics
Példa alapszintű szintaxisra
Az alábbi példa az egyes részlegek medián alkalmazotti fizetését használja PERCENTILE_CONT és PERCENTILE_DISC keresi. Előfordulhat, hogy nem ugyanazt az értéket adja vissza:
-
PERCENTILE_CONTa megfelelő értéket adja vissza, még akkor is, ha az nem szerepel az adathalmazban. -
PERCENTILE_DISCegy tényleges beállított értéket ad vissza.
-- 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;
Íme egy részleges eredményhalmaz.
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