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 Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analiz Platformu Sistemi (PDW)
Microsoft Fabric'teki SQL analiz uç noktası
Microsoft Fabric'teki ambar
Microsoft Fabric'teki SQL veritabanı
Sql Server'da bir satır kümesinin tamamında veya bir satır kümesinin ayrı bölümlerinde sıralanmış değerler için belirli bir yüzde birlik değeri hesaplar. Belirli bir yüzdebirlik değer için P, PERCENTILE_DISC yan tümcesindeki ORDER BY ifade değerlerini sıralar. Daha sonra verilen en CUME_DIST küçük değere sahip değeri (aynı sıralama belirtimine göre) P'den büyük veya buna eşit olarak döndürür. Örneğin, PERCENTILE_DISC (0.5) bir ifadenin 50. yüzdebirlik değerini (yani ortanca değerini) hesaplar.
PERCENTILE_DISC sütun değerlerinin ayrık dağılımını temel alarak yüzdebirliği hesaplar. Sonuç belirli bir sütun değerine eşittir.
Transact-SQL söz dizimi kuralları
Sözdizimi
PERCENTILE_DISC ( numeric_literal ) WITHIN GROUP ( ORDER BY order_by_expression [ ASC | DESC ] )
OVER ( [ <partition_by_clause> ] )
Arguments
değişmez değer
İşlem için yüzdebirlik. Değer 0,0 ile 1,0 arasında olmalıdır.
GRUP İçERİSİ ( ORDER BY order_by_expression [ ASC | DESC ] )
Yüzdebirlik değeri sıralamak ve hesaplamak için değerlerin listesini belirtir. Yalnızca bir order_by_expression izin verilir. Varsayılan sıralama düzeni artan düzendedir. Değerlerin listesi, sıralama işlemi için geçerli olan veri türlerinden herhangi biri olabilir.
SON ( <partition_by_clause> )
Yan tümcenin FROM sonuç kümesini bölümlere ayırır. Yüzdebirlik işlevi bu bölümlere uygulanır. Daha fazla bilgi için bkz. SELECT - OVER yan tümcesi.
<ORDER BY yan tümcesi> ve <satırlar veya aralık yan tümcesi>bir PERCENTILE_DISC işlevde belirtilemiyor.
Dönüş türleri
Dönüş türü , order_by_expression türüne göre belirlenir.
Uyumluluk desteği
Uyumluluk düzeyi 110 ve üzeri WITHIN GROUP altında ayrılmış bir anahtar sözcüktür. Daha fazla bilgi için bkz. ALTER DATABASE uyumluluk düzeyi.
Açıklamalar
Veri kümesindeki tüm null değerler yoksayılır.
PERCENTILE_DISC belirsiz değildir. Daha fazla bilgi için bkz . Deterministic ve nondeterministic functions.
Örnekler
Temel söz dizimi örneği
Aşağıdaki örnek, her departmanın ortanca çalışan maaşını bulmak için ve PERCENTILE_CONT kullanırPERCENTILE_DISC. Aynı değeri döndürmeyebilirler:
-
PERCENTILE_CONT, veri kümesinde mevcut olmasa bile uygun değeri döndürür. -
PERCENTILE_DISCgerçek bir küme değeri döndürür.
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;
Kısmi bir sonuç kümesi aşağıdadır.
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
Örnekler: Azure Synapse Analytics ve Analytics Platform Sistemi (PDW)
Temel söz dizimi örneği
Aşağıdaki örnek, her departmanın ortanca çalışan maaşını bulmak için ve PERCENTILE_CONT kullanırPERCENTILE_DISC. Aynı değeri döndürmeyebilirler:
-
PERCENTILE_CONT, veri kümesinde mevcut olmasa bile uygun değeri döndürür. -
PERCENTILE_DISCgerçek bir küme değeri döndürür.
-- 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;
Kısmi bir sonuç kümesi aşağıdadır.
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