Cümleye Göre SQL BÖLÜMÜ

Cumleye Gore Sql Bolumu



SQL'de PARTITION BY cümlesi, belirli bir sorgunun sonuç kümesini bir veya daha fazla sütuna dayalı olarak çeşitli gruplara bölmemize veya bölümlendirmemize olanak tanır. Ortaya çıkan bölümler, özellikle hesaplamaları her bölüme (ayrı ayrı) yapmanız veya her gruptaki toplama işlevlerini uygulamanız gerektiğinde oldukça yararlı olabilir.

Bu derste, SQL'deki PARTITION BY cümlesinin işleyişini öğreneceğiz ve onu, verileri daha ayrıntılı bir alt küme için bölümlendirmek için nasıl kullanabileceğimizi keşfedeceğiz.

Sözdizimi:

PARTITION BY cümlesinin söz dizimi ile başlayalım. Sözdizimi kullandığınız bağlama bağlı olabilir ancak genel sözdizimi şöyledir:







Sütun1, sütun2, ...'yi SEÇİN

ÜZERİNDE (Bölüm_sütun1, bölüm_sütun2, ...'E GÖRE BÖLÜM)

FROM table_name

Verilen sözdizimi aşağıdaki öğeleri temsil eder:



  1. sütun1, sütun2 – Sonuç kümesine dahil etmek istediğimiz sütunları ifade eder.
  2. PARTITION BY sütunları – Bu madde, verileri nasıl bölümlemek veya gruplandırmak istediğimizi tanımlar.

Örnek veri

PARTITION BY ifadesinin nasıl kullanılacağını göstermek için örnek veriler içeren temel bir tablo oluşturalım. Bu örnek için ürün bilgilerinin saklandığı temel bir tablo oluşturalım.



CREATE TABLE ürünleri (
ürün_id INT BİRİNCİL ANAHTAR AUTO_INCREMENT,
ürün_adı VARCHAR( 255 ),
kategori VARCHAR( 255 ),
fiyat DECIMAL( 10 , 2 ),
miktar INT,
expiration_date DATE,
barkod BÜYÜK
);

sokmak
içine
ürünler (ürün_adı,
kategori,
fiyat,
miktar,
Son kullanma tarihi,
barkod)
değerler ( 'Şef Şapkası 25cm' ,
'fırın' ,
24.67 ,
57 ,
'2023-09-09' ,
2854509564204 );

sokmak
içine
ürünler (ürün_adı,
kategori,
fiyat,
miktar,
Son kullanma tarihi,
barkod)
değerler ( 'Bıldırcın Yumurtası - Konserve' ,
'kiler' ,
17.99 ,
67 ,
'2023-09-29' ,
1708039594250 );

sokmak
içine
ürünler (ürün_adı,
kategori,
fiyat,
miktar,
Son kullanma tarihi,
barkod)
değerler ( 'Kahve - Yumurta Nog Capuccino' ,
'fırın' ,
92.53 ,
10 ,
'2023-09-22' ,
8704051853058 );

sokmak
içine
ürünler (ürün_adı,
kategori,
fiyat,
miktar,
Son kullanma tarihi,
barkod)
değerler ( 'Armut - Dikenli' ,
'fırın' ,
65.29 ,
48 ,
'2023-08-23' ,
5174927442238 );

sokmak
içine
ürünler (ürün_adı,
kategori,
fiyat,
miktar,
Son kullanma tarihi,
barkod)
değerler ( 'Makarna - Melek Saçı' ,
'kiler' ,
48.38 ,
59 ,
'2023-08-05' ,
8008123704782 );

sokmak
içine
ürünler (ürün_adı,
kategori,
fiyat,
miktar,
Son kullanma tarihi,
barkod)
değerler ( 'Şarap - Prosecco Valdobiaddene' ,
'üretmek' ,
44.18 ,
3 ,
'2023-03-13' ,
6470981735653 );

sokmak
içine
ürünler (ürün_adı,
kategori,
fiyat,
miktar,
Son kullanma tarihi,
barkod)
değerler ( 'Pasta - Fransız Mini Karışık' ,
'kiler' ,
36.73 ,
52 ,
'2023-05-29' ,
5963886298051 );

sokmak
içine
ürünler (ürün_adı,
kategori,
fiyat,
miktar,
Son kullanma tarihi,
barkod)
değerler ( 'Portakal - Konserve, Mandalina' ,
'üretmek' ,
65.0 ,
1 ,
'2023-04-20' ,
6131761721332 );

sokmak
içine
ürünler (ürün_adı,
kategori,
fiyat,
miktar,
Son kullanma tarihi,
barkod)
değerler ( 'Domuz eti - Omuz' ,
'üretmek' ,
55.55 ,
73 ,
'2023-05-01' ,
9343592107125 );

sokmak
içine
ürünler (ürün_adı,
kategori,
fiyat,
miktar,
Son kullanma tarihi,
barkod)
değerler ( 'Dc Hikiage Hira Huba' ,
'üretmek' ,
56.29 ,
53 ,
'2023-04-14' ,
3354910667072 );

Örnek veri kurulumunu yaptıktan sonra PARTITION BY cümleciğini kullanabiliriz.





Temel Kullanım

Önceki tabloda her bir ürün kategorisi için toplam kalem sayısını hesaplamak istediğimizi varsayalım. Öğeleri benzersiz kategorilere ayırmak ve ardından her kategorideki toplam miktarı belirlemek için PARTITION BY'yi kullanabiliriz.

Bir örnek aşağıdaki gibidir:



SEÇME
Ürün adı,
kategori,
miktar,
SUM(miktar) OVER (Kategoriye Göre BÖLÜM) AS total_items
İTİBAREN
ürünler;

Verilen örnekte verileri 'kategori' sütununu kullanarak bölümlediğimize dikkat edin. Daha sonra her kategorideki toplam öğeleri ayrı ayrı belirlemek için SUM() toplama işlevini kullanırız. Sonuç, her kategorideki toplam öğeyi gösterir.

PARTITION BY Maddesini Kullanmak

Özetlemek gerekirse, PARTITION BY yan tümcesinin en yaygın kullanım durumu pencere işlevleriyle bağlantılıdır. Pencere işlevi her bölüme ayrı ayrı uygulanır.

PARTITION BY ile kullanılacak yaygın pencere işlevlerinden bazıları şunlardır:

  • SUM() – Her bölüm içindeki bir sütunun toplamını hesaplayın.
  • AVG() – Her bölümdeki bir sütunun ortalamasını hesaplar.
  • COUNT() – Her bölümdeki satır sayısını sayın.
  • ROW_NUMBER() – Her bölümdeki her satıra benzersiz bir satır numarası atayın.
  • RANK() – Her bölümdeki her satıra bir sıralama atayın.
  • DENSE_RANK() – Her bölümdeki her satıra yoğun bir sıralama atayın.
  • NTILE() – Verileri her bölümdeki niceliklere bölün.

Bu kadar!

Çözüm

Bu derste, verileri çeşitli segmentlere bölmek için SQL'deki PARTITION BY cümlesiyle nasıl çalışacağımızı ve ardından elde edilen bölümlerin her birine ayrı ayrı belirli bir işlem uygulayacağımızı öğrendik.