0% found this document useful (0 votes)
3 views2 pages

6 SQL

Uploaded by

qk687sbgt5
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views2 pages

6 SQL

Uploaded by

qk687sbgt5
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

GRUPLAMA İŞLEMLERİ(GROUP BY)

Bir veri seti içinde alt kümeler üzerinde işlemler yapmak için kullanılır. Her personelin
yaptığı toplam işlem adedi, her bölümdeki erkek öğrenci sayısı gibi verileri görüntülemek
için o veri setinde önce personellere veya bölüme göre alt grup oluşturulur sonrada o alt
küme üzerinden sayısal değerler elde edilir.

Formatı: select alan,sayısal_veri_fonksiyonu from tabloadi GROUP BY alan1

dikkat edilmesi gereken gruplandırma için kullanılacak olan alanın select komutundan
sonra mutlaka kullanılmış olmasıdır.

Sayısal veri fonksiyonları; sum(toplam), avg(ortalama), count(adet toplamı), min(en


küçük), max(en büyük) gibi fonksiyonlardır.

select KategoriID,count(*) as adet from urunler sorgusunun döndüreceği veri seti neleri
içerir

Örnek: urunler tablosunda kategorilerden kaçar tane var listesini oluşturun

select KategoriID,count(*) as adet from urunler group by KategoriID

Örnek: Satis Detayları tablosunda hangi satışta kaç adet ürün satılmıştır listesini gösterin

select SatisID,sum(miktar) as toplam from [Satis Detaylari] group by SatisID

Örnek: tablo içerisinde hangi üründen toplam kaç adet işlem yapılmış olduğunun listesi

select UrunID,sum(miktar) as toplam from [Satis Detaylari] group by UrunID order by


UrunID

Örnek: satislar tablosunda hangi personel kaç satış yapmıştır listeleyin

select personelID,count(*) from Satislar group by PersonelID

Sadece bir sütundaki verilere göre de gruplama yapılmayabilir. Bir sütuna bağlı bir başka
sütundaki verilerin sayısal değerleri hakkında veri çekmek istersek eğer bu durumda ikili
gruplama yapılması gerekir.

Örnek: Hangi Tedarikçinin hangi kategoride ne kadar ürün kaydı var

select kategoriID,TedarikciID,count(*) from urunler group by kategoriID,TedarikciID

Örnek: Hangi kategoride hangi Tedarikçinin ne kadar ürün kaydı var

select TedarikciID,kategoriID,count(*) from urunler group by TedarikciID,kategoriID

Örnek: satislar tablosunda PersonelID alanına göre ortalama nakliye ücretini gösteren
listeyi oluşturun

select personelId,avg(nakliyeUcreti) from satislar group by personelID order by


personelID

HAVING şartı: group by işlemlerinde şart sunmak için kullanılır. Having komutu da where
gibi filtrleme işlemi için kullanılır ama farkı where bir alandaki veri için kullanılırken having
sayısal bir değer için kullanılır
Örnek: Satis Detaylari tablosu içerisinde hangi üründen toplamda 250 den fazla adette
satış yapılmış olanların listesi

select UrunID,sum(miktar) as toplam from [Satis Detaylari] group by UrunID having


sum(miktar)>250 order by UrunID

Örnek: Satislar tablosundan PersonelID'si 5 ten büyük olanların işlem adet bilgilerini
gösterin

select personelID,count(*) from satislar where personelID>5 group by personelID

Örnek: Satislar tablosundan PersonelID'si 5 ten büyük olanların işlem adet bilgisi 70 den
fazla olanları gösterin

select personelID,count(*) from satislar where personelID>5 group by personelID having


count(*)>70

Örnek: aşağıdaki komut satırları yorumlayın farklılıklarını tanımlayın

select avg(miktar),sum(miktar*BirimFiyati) from [Satis Detaylari]

select kategoriId,count(*) from Urunler group by KategoriID

Örnek: Satis Detaylari tablosunda maliyeti(BirimFiyati*miktar) toplamlarının 0 dan büyük


olan ürünleri listeleyin

select UrunID,sum(BirimFiyati*miktar) from [Satis Detaylari] group by UrunID having


sum(BirimFiyati*miktar)>0 order by UrunID

Where şartı ile kullanım

Örnek: satış detayları tablosunda indirim değeri 0 dan büyük olan satışların ortalama adet
bilgilerini(miktar) bilgisini gösterin

select satisID,avg(miktar) ortalama from [Satis Detaylari] where İndirim>0 group by


SatisID

Örnek: satisId si 10260 tan küçük olanların satış miktarı 50 den büyük olanları göstersin

select satisID,sum(miktar) from [Satis Detaylari] where SatisID<10260 group by SatisID


having sum(miktar)>50

WITH ROLLUP: Group By ile gruplandırılmış veri grubunda her alt grupta elde edilen ara
toplamların gösterimi için kullanılır. Listenin sonunda genel toplam da mevcuttur.

select satisID,urunID,sum(miktar) from [Satis Detaylari] group by SatisID,UrunID with


rollup

You might also like