Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Microsoft Fabric'te
SQL analitiği uç noktasıMicrosoft Fabric'te
DepoMicrosoft Fabric'te SQL veritabanı
SQL Server'da bir sıra grubu içindeki bir satırın göreli sıralamasını hesaplar. Bir sorgu sonuç kümesi veya bölüm içindeki bir değerin göreli durumunu değerlendirmek için kullanılır PERCENT_RANK .
PERCENT_RANK
CUME_DIST fonksiyonuna benzer.
Sözdizimi
PERCENT_RANK( )
OVER ( [ partition_by_clause ] order_by_clause )
Arguments
OVER ( [ partition_by_clause ] order_by_clause )
İlk parametre partition_by_clause, cümlenin FROM ürettiği sonuç kümesini, fonksiyonun uygulandığı bölümlere böler. Belirtilmezse, işlev sorgu sonuç kümesinin tüm satırlarını tek bir grup olarak ele alır. İkinci parametre order_by_clause, işlemin mantıksal sırasını belirler.
order_by_clause zorunludur. Sözdizimi <rows or range clause>OVER bir PERCENT_RANK fonksiyonda belirtilemez. Daha fazla bilgi için bkz. SELECT - OVER Maddesi.
Dönüş türleri
float(53)
Açıklamalar
Döndürülen PERCENT_RANK değerler aralığı daha büyük 0 , daha küçük veya eşittir 1. Herhangi bir setin PERCENT_RANK ilk satırında bir ' 0var.
NULL Değerler varsayılan olarak dahil edilir ve mümkün olan en düşük değerler olarak kabul edilir.
PERCENT_RANK belirsiz değildir. Daha fazla bilgi için bkz. Deterministik ve deterministik olmayan fonksiyonlar.
Örnekler
Bu makaledeki kod örnekleri, AdventureWorks2025 giriş sayfasından indirebileceğiniz AdventureWorksDW2025 veya örnek veritabanını kullanır.
Aşağıdaki örnek, belirli bir departmandaki her çalışan için maaş yüzdeliğini hesaplama fonksiyonunu kullanır CUME_DIST . Fonksiyon tarafından CUME_DIST iade edilen değer, aynı departmandaki mevcut çalışanın maaşı altında veya eşit olan çalışanların yüzdesini temsil eder. Bu PERCENT_RANK fonksiyon, bir departmandaki çalışanın maaşının derecesini yüzde olarak hesaplar. Bu madde, PARTITION BY sonuç kümesindeki satırları bölümlere göre bölmek için belirlenmiştir. Maddedeki ORDER BY cümle OVER her bölümdeki satır sıralarını düzenler. Cümledeki ORDER BY cümleSELECT, tüm sonuç kümesindeki satırları sıralar.
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;
Sonuç kümesi aşağıdadır.
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