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 Veritabanı Motoru'ndaki sütun değerinin sürekli dağılımına dayalı bir yüzdelik hesaplar. Sonuç interpolasyonlu olur ve sütundaki belirli değerlerin hiçbirine eşit olmayabilir.
Transact-SQL söz dizimi kuralları
Sözdizimi
PERCENTILE_CONT ( numeric_literal )
WITHIN GROUP ( ORDER BY order_by_expression [ ASC | DESC ] )
OVER ( [ <partition_by_clause> ] )
Arguments
numeric_literal
İşlem için yüzdebirlik. Değer ile 0.0arasında 1.0 değişmelidir.
GRUP IÇINDE (order_by_expression ILE DÜZENLENIR)
Yüzdebirlik değeri sıralamak ve hesaplamak için sayısal değerlerin listesini belirtir. Yalnızca bir order_by_expression izin verilir. İfade, başka veri türlerine izin verilmeden tam veya yaklaşık bir sayısal türe değerlendirilmelidir. Tam sayısal türler int, bigint, smallint, tinyint, numeric, bit, decimal, smallmoney ve money'dir. Yaklaşık sayısal tipler float ve real'dir. Varsayılan sıralama düzeni artan düzendedir.
SON ( <partition_by_clause> )
Madde FROM tarafından üretilen sonuç kümesini, yüzde yüzdelik fonksiyonunun uygulandığı bölümlere böler. Daha fazla bilgi için bkz. SELECT - OVER Maddesi. Sözdiziminin ORDER BY ve <rows or range clause>OVER sözdizimi bir PERCENTILE_CONT fonksiyonda belirtilemez.
Dönüş türleri
float(53)
Uyumluluk desteği
WITHIN GROUP uyumluluk seviyesinden 110başlayarak ayrılmış bir anahtar kelimedir. Daha fazla bilgi için ALTER DATABASE Uyumluluk Seviyesine bakınız.
Açıklamalar
Veri kümesindeki tüm null değerler yoksayılır.
PERCENTILE_CONT belirsiz değildir. Daha fazla bilgi için bkz . Deterministic ve Nondeterministic Functions.
Örnekler
Bu makaledeki kod örnekleri, AdventureWorks2025 giriş sayfasından indirebileceğiniz AdventureWorksDW2025 veya örnek veritabanını kullanır.
A. Departman başına medyan çalışan maaşını bulun
Aşağıdaki örnek PERCENTILE_CONT , her departmanda medyan çalışan maaşını bulmak için ve PERCENTILE_DISC kullanır. Bu fonksiyonlar aynı değeri vermeyebilir.
PERCENTILE_CONT veri setinde var olup olmayabilecek uygun değeri interpolasyon yapar ve PERCENTILE_DISC her zaman kümeden gerçek bir değer döndürür.
USE AdventureWorks2022;
GO
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)
Aşağıdaki örnek örnek veritabanını kullanır AdventureWorksDW2012 .
B. Departman başına medyan çalışan maaşını bulun
Aşağıdaki örnek PERCENTILE_CONT , her departmanda medyan çalışan maaşını bulmak için ve PERCENTILE_DISC kullanır. Bu fonksiyonlar aynı değeri vermeyebilir.
PERCENTILE_CONT veri setinde var olup olmayabilecek uygun değeri interpolasyon yapar ve PERCENTILE_DISC her zaman kümeden gerçek bir değer döndürür.
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