Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistem Platform Analitik (PDW)
Titik akhir analitik SQL di Microsoft Fabric
Gudang di Microsoft Fabric
Database SQL di Microsoft Fabric
Menghitung persentil tertentu untuk nilai yang diurutkan di seluruh set baris atau dalam partisi yang berbeda dari set baris di SQL Server. Untuk nilai persentil tertentu P, PERCENTILE_DISC mengurutkan nilai ekspresi dalam ORDER BY klausa. Kemudian mengembalikan nilai dengan nilai terkecil CUME_DIST yang diberikan (sehubungan dengan spesifikasi pengurutan yang sama) yang lebih besar dari atau sama dengan P. Misalnya, PERCENTILE_DISC (0.5) menghitung persentil ke-50 (yaitu, median) ekspresi.
PERCENTILE_DISC menghitung persentil berdasarkan distribusi diskrit dari nilai kolom. Hasilnya sama dengan nilai kolom tertentu.
Sintaks
PERCENTILE_DISC ( numeric_literal ) WITHIN GROUP ( ORDER BY order_by_expression [ ASC | DESC ] )
OVER ( [ <partition_by_clause> ] )
Argumen
harfiah
Persentil untuk dihitung. Nilai harus berkisar antara 0,0 dan 1,0.
DALAM GRUP ( ORDER BY order_by_expression [ ASC | DESC ] )
Menentukan daftar nilai untuk mengurutkan dan menghitung persentil. Hanya satu order_by_expression yang diizinkan. Urutan sortir default adalah menaik. Daftar nilai bisa dari salah satu jenis data yang valid untuk operasi pengurutan.
LEBIH ( <partition_by_clause> )
Membagi hasil klausul FROM yang ditetapkan menjadi partisi. Fungsi persentil diterapkan ke partisi ini. Untuk informasi selengkapnya, lihat klausa SELECT - OVER.
<Klausa> ORDER BY dan <baris atau klausa>rentang tidak dapat ditentukan dalam PERCENTILE_DISC fungsi.
Tipe pengembalian
Jenis pengembalian ditentukan oleh jenis order_by_expression .
Dukungan kompatibilitas
Di bawah tingkat kompatibilitas 110 dan yang lebih tinggi, WITHIN GROUP adalah kata kunci yang dipesan. Untuk informasi selengkapnya, lihat MENGUBAH tingkat kompatibilitas DATABASE.
Komentar
Setiap null dalam himpunan data diabaikan.
PERCENTILE_DISC bersifat nondeterministik. Untuk informasi selengkapnya, lihat Fungsi deterministik dan nondeterministik.
Contoh
Contoh sintaks dasar
Contoh berikut menggunakan PERCENTILE_CONT dan PERCENTILE_DISC untuk menemukan gaji karyawan median setiap departemen. Mereka mungkin tidak mengembalikan nilai yang sama:
-
PERCENTILE_CONTmengembalikan nilai yang sesuai, meskipun tidak ada dalam himpunan data. -
PERCENTILE_DISCmengembalikan nilai set aktual.
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;
Berikut adalah hasil parsial yang ditetapkan.
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
Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)
Contoh sintaks dasar
Contoh berikut menggunakan PERCENTILE_CONT dan PERCENTILE_DISC untuk menemukan gaji karyawan median setiap departemen. Mereka mungkin tidak mengembalikan nilai yang sama:
-
PERCENTILE_CONTmengembalikan nilai yang sesuai, meskipun tidak ada dalam himpunan data. -
PERCENTILE_DISCmengembalikan nilai set aktual.
-- 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;
Berikut adalah hasil parsial yang ditetapkan.
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