Aracılığıyla paylaş


PERCENTILE_DISC (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft 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_DISC gerç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_DISC gerç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