Derecelendirme ve satır kümesi işlevlerini kullanma

Tamamlandı

Sıralama ve satır kümesi işlevleri tek bir değer döndürmediğinden skaler işlevler değildir. Bu işlevler giriş olarak bir satır kümesini kabul edip çıkış olarak bir satır kümesi döndürür.

Derecelendirme işlevleri

Derecelendirme işlevleri, kullanıcı tanımlı bir satır kümesine göre hesaplamalar yapmanıza olanak tanır. Bu işlevler derecelendirme, uzaklık, toplama ve dağıtım işlevlerini içerir.

Bu örnekte RANK işlevi, ListPrice'e göre en yüksek fiyat 1 olarak derecelenmiş bir derecelendirme hesaplamak için kullanılır:

SELECT TOP 100 ProductID, Name, ListPrice,
RANK() OVER(ORDER BY ListPrice DESC) AS RankByPrice
FROM Production.Product AS p
ORDER BY RankByPrice;

Sorgu sonuçları şöyle görünebilir:

ProductID

Veri Akışı Adı

ListPrice

RankByPrice

749

Yol-150 Kırmızı, 62

3578.27

1

750

Yol-150 Kırmızı, 44

3578.27

1

751

Yol-150 Kırmızı, 48

3578.27

1

771

Mountain-100 Gümüş, 38

3399.99

4

772

Mountain-100 Gümüş, 42

3399.99

4

775

Dağ-100 Siyah, 38

3374.99

6

...

...

...

...

ÜZERİNDE

OVER yan tümcesini kullanarak verilerin içindeki bölümleri veya gruplandırmaları tanımlayabilirsiniz. Örneğin, aşağıdaki sorgu önceki örneği genişleterek her kategorideki ürünlerin fiyat tabanlı derecelendirmelerini hesaplar.

SELECT c.Name AS Category, p.Name AS Product, ListPrice,
  RANK() OVER(PARTITION BY c.Name ORDER BY ListPrice DESC) AS RankByPrice
FROM Production.Product AS p
JOIN Production.ProductCategory AS c
ON p.ProductCategoryID = c.ProductcategoryID
ORDER BY Category, RankByPrice;

Bu sorgunun sonuçları şuna benzer olabilir:

Kategori

Ürün

ListPrice

RankByPrice

Bib-Şort

Erkek Bib-Şort, S

89.99

1

Bib-Şort

Erkek Bib-Şort, M

89.99

1

Bisiklet Rafları

Otostop Rafı - 4 Bisikletli

120

1

Bisiklet Standları

Çok Amaçlı Bisiklet Standı

159

1

Şişeler ve Kafesler

Dağ Şişesi Kafesi

9,99

1

Şişeler ve Kafesler

Yol Şişesi Kafesi

8.99

2

Şişeler ve Kafesler

Su Şişesi - 30 oz.

4,99

3

Alt Braketler

HL Alt Köşeli Ayraç

121.49

1

Alt Braketler

ML Alt Köşeli Ayraç

101.24

2

Alt Braketler

LL Alt Braket

53.99

3

...

...

...

...

Not

Birkaç satırın aynı derece değerine sahip olduğuna ve bazı değerlerin atlandığına dikkat edin. Bunun nedeni yalnızca RANK'i kullanmamızdır. Gereksinime bağlı olarak, aynı derece değerindeki bağlardan kaçınmak isteyebilirsiniz. Sıralama değerini gerektiği gibi DENSE_RANK, NTILE ve ROW_NUMBER diğer işlevlerle denetleyebilirsiniz. Bu işlevlerle ilgili ayrıntılar için Transact-SQL başvuru belgelerine bakın.

Satır kümesi işlevleri

Satır kümesi işlevleri, FROM yan tümcesinde veri kaynağı olarak kullanılabilecek bir sanal tablo döndürür. Bu işlevler, satır kümesi işlevinin kendisine özgü parametreleri alır. OpenDATASOURCE, OPENQUERY, OPENROWSET, OPENXML ve OPENJSON içerir.

OPENDATASOURCE, OPENQUERY ve OPENROWSET işlevleri, uzak veritabanı sunucusuna sorgu geçirmenizi sağlar. Ardından uzak sunucu bir sonuç satırları kümesi döndürür. Örneğin, aşağıdaki sorgu, SalesDB adlı bir SQL Server örneğinden sorgunun sonuçlarını almak için OPENROWSET kullanır.

SELECT a.*
FROM OPENROWSET('SQLNCLI', 'Server=SalesDB;Trusted_Connection=yes;',
    'SELECT Name, ListPrice
    FROM AdventureWorks.Production.Product') AS a;

Uzak sunucuları kullanmak için sorguyu çalıştırdığınız SQL Server örneğinde bazı gelişmiş seçenekleri etkinleştirmeniz gerekir.

OPENXML ve OPENJSON işlevleri, yapılandırılmış verileri XML veya JSON biçiminde sorgulamanıza ve değerleri tablo satır kümesine ayıklamanıza olanak tanır.

Satır kümesi işlevlerinin ayrıntılı bir keşfi bu modülün kapsamının dışındadır. Daha fazla bilgi için Transact-SQL başvuru belgelerine bakın.