PERCENT_RANK (T-SQL)
Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analyticstitik akhir analitik SQL di Microsoft FabricWarehouse di Microsoft Fabric
Menghitung peringkat relatif baris dalam sekelompok baris di SQL Server. Gunakan PERCENT_RANK
untuk mengevaluasi posisi relatif nilai dalam kumpulan hasil kueri atau partisi. PERCENT_RANK
mirip dengan fungsi CUME_DIST .
Sintaksis
PERCENT_RANK( )
OVER ( [ partition_by_clause ] order_by_clause )
Catatan
Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.
Argumen
OVER ( [ partition_by_clause ] order_by_clause )
Parameter pertama, partition_by_clause, membagi tataan hasil yang dihasilkan oleh FROM
klausul menjadi partisi tempat fungsi diterapkan. Jika tidak ditentukan, fungsi memperlakukan semua baris hasil kueri yang ditetapkan sebagai grup tunggal. Parameter kedua, order_by_clause, menentukan urutan logis tempat operasi dilakukan. order_by_clause diperlukan. OVER
Sintaksis <rows or range clause>
tidak dapat ditentukan dalam PERCENT_RANK
fungsi. Untuk informasi selengkapnya, lihat SELECT - OVER Clause.
Jenis yang dikembalikan
float(53)
Keterangan
Rentang nilai yang dikembalikan oleh PERCENT_RANK
lebih besar dari 0
dan kurang dari atau sama dengan 1
. Baris pertama dalam set apa pun memiliki PERCENT_RANK
dari 0
. NULL
nilai disertakan secara default dan diperlakukan sebagai nilai serendah mungkin.
PERCENT_RANK
bersifat nondeterministik. Untuk informasi selengkapnya, lihat Fungsi deterministik dan nondeterministik.
Contoh
Sampel kode Transact-SQL dalam artikel ini menggunakan AdventureWorks2022
database sampel, yang dapat Anda unduh dari beranda Sampel Microsoft SQL Server dan Proyek Komunitas.
Contoh berikut menggunakan CUME_DIST
fungsi untuk menghitung persentil gaji untuk setiap karyawan dalam departemen tertentu. Nilai yang dikembalikan oleh CUME_DIST
fungsi mewakili persentase karyawan yang memiliki gaji kurang dari atau sama dengan karyawan saat ini di departemen yang sama. Fungsi ini PERCENT_RANK
menghitung peringkat gaji karyawan dalam departemen sebagai persentase. Klausa PARTITION BY
ditentukan untuk mempartisi baris dalam hasil yang ditetapkan oleh departemen. Klausa ORDER BY
dalam OVER
klausa mengurutkan baris di setiap partisi. Klausa ORDER BY
dalam SELECT
pernyataan mengurutkan baris dalam seluruh tataan hasil.
USE AdventureWorks2022;
GO
SELECT Department,
LastName,
Rate,
CUME_DIST() OVER (PARTITION BY Department ORDER BY Rate) AS CumeDist,
PERCENT_RANK() OVER (PARTITION BY Department ORDER BY Rate) AS PctRank
FROM HumanResources.vEmployeeDepartmentHistory AS edh
INNER JOIN HumanResources.EmployeePayHistory AS e
ON e.BusinessEntityID = edh.BusinessEntityID
WHERE Department IN (N'Information Services', N'Document Control')
ORDER BY Department, Rate DESC;
Berikut adalah hasil yang ditetapkan.
Department LastName Rate CumeDist PctRank
---------------------- ---------------------- ----------------- ------------------ ------------------
Document Control Arifin 17.7885 1 1
Document Control Norred 16.8269 0.8 0.5
Document Control Kharatishvili 16.8269 0.8 0.5
Document Control Chai 10.25 0.4 0
Document Control Berge 10.25 0.4 0
Information Services Trenary 50.4808 1 1
Information Services Conroy 39.6635 0.9 0.888888888888889
Information Services Ajenstat 38.4615 0.8 0.666666666666667
Information Services Wilson 38.4615 0.8 0.666666666666667
Information Services Sharma 32.4519 0.6 0.444444444444444
Information Services Connelly 32.4519 0.6 0.444444444444444
Information Services Berg 27.4038 0.4 0
Information Services Meyyappan 27.4038 0.4 0
Information Services Bacon 27.4038 0.4 0
Information Services Bueno 27.4038 0.4 0
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk