Aracılığıyla paylaş


CUME_DIST (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsMicrosoft Fabric'te SQL analitiği uç noktasıMicrosoft Fabric'te DepoMicrosoft Fabric'te SQL veritabanı

SQL Server için bu fonksiyon, bir değerin bir değer grubu içindeki kümülatif dağılımını hesaplar. Başka bir deyişle, CUME_DIST belirli bir değerin bir değerler grubundaki göreli konumunu hesaplar. Artan sıralamaya varsayılırsak, r satırındaki bir değerin değeriCUME_DIST, r satırındaki değerden az veya eşit olan satır sayısının bölünme veya sorgu sonuç kümesinde değerlendirilen satır sayısına bölünmesi olarak tanımlanır. CUME_DIST işlevine PERCENT_RANK benzer.

Transact-SQL söz dizimi kuralları

Sözdizimi

CUME_DIST( )  
    OVER ( [ partition_by_clause ] order_by_clause )  

Arguments

OVER ( [ partition_by_clause ] order_by_clause)

partition_by_clause, FROM cümlesi sonuç kümesini bölümlere böler ve fonksiyon bu bölümlere uygulanır. Eğer partition_by_clause argüman belirtilmemişse, CUME_DIST tüm sorgu sonuç kümesi satırlarını tek bir grup olarak ele alır. order_by_clause, işlemin mantıksal sırasını belirler. CUME_DIST order_by_clause gerektirir. CUME_DISTOVER sözdizimindeki satır veya aralık maddesini> kabul <etmiyor. Daha fazla bilgi için bkz. OVER Maddesi (Transact-SQL).

Dönüş türleri

float(53)

Açıklamalar

CUME_DIST 0'dan büyük ve 1'den az veya eşit değer aralığı döner. Beraberlik değerleri her zaman aynı kümülatif dağılım değerine göre değerlendirilir. CUME_DIST varsayılan olarak NULL değerleri içerir ve bu değerleri en düşük olası değerler olarak kabul eder.

CUME_DIST belirsiz değildir. Daha fazla bilgi için bkz . Deterministic ve Nondeterministic Functions.

Örnekler

Bu örnek, CUME_DIST belirli bir departmandaki her çalışan için maaş yüzdesini hesaplama fonksiyonunu kullanır. CUME_DIST aynı departmandaki mevcut çalışanın maaşı altında veya ona eşit olan çalışanların yüzdesini temsil eden bir değer döndürür. Bu PERCENT_RANK fonksiyon, bir departmandaki çalışanın maaşının yüzde derecesini hesaplar. Sonuç kümesi satırlarını bölümlere göre bölmek için örnek partition_by_clause değerini belirtir. OVER kaldızının ORDER BY maddesi, her bölümdeki satırları mantıksal olarak sıralar. SELECT ifadesinin ORDER BY maddesi, sonuç kümesinin görüntüleme sırasını belirler.

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  
(15 row(s) affected)  

Ayrıca bakınız

PERCENT_RANK (Transact-SQL)