Sql group by,order by ve having kullanımı

Muhammet Ali
28 Ekim 2016 Cuma
1

 

Merhaba arkadaşlar

Sql de sık sık kullandığımız veya karşılaştığımız yapılardan olan group by,order by ve having kullanımını göreceğiz.Tek tek incelemek gerekirse;

group by

Group by bir veri kümesinde ki alanların görüntülenmesi sırasında belirli alan yada alanlara göre gruplanması için kullanılır.

//Aşağıdaki sorguzda vatandas tablosundaki verileri adi alanını baz alarak gruplayıp sonucu bize döndürür.Yani aynı ada sahip kişileri tek satır olarak gösterir.

select adi from vatandas group by adi

//Aşağıdaki sorguda ise vatandaş tablomuzda aynı ada sahip kişilerin yaş ve boy toplamını döndüren sorgu. 

select adi,sum(yas) ,sum(boy) from vatandas group by adi

order by

Order by komutu da sıralama yapılmak istenildiğinde kullanılır. Artan(asc) ve azalan(desc) parametleri ile kullanılabilir. Parametre almaz ise default artan şeklinde sıralama yapar.

//Aşağıdaki sorguda vatandaş tablosunda yaşı büyük olandan küçüğe olana doğru sıralar

select * from vatandas order by yas desc

//Aşağıdaki kod ise tam tersi şekilde küçükten büyüğe sıralama yapar.

select * from vatandas order by yasi asc

//order by ve group by ortak kullanımı

//Bu sorguda vatandaş tablosunda aynı ada sahip kişilerin yaşı ve boyu toplarının yaş toplamı büyükten küçüğe doğru getirme işlemi yapar.

select adi,sum(yasi) ,sum(boyu) from vatandas group by adi order by yasi desc

 

having kullanımı

having komutu group by komutu ile kullanılan ,gruplanmış veri üzerinden sorgulama yapılmasına olanak tanıyan sql yapısıdır

.//Vatandaş tablosunda aynı ada sahip kişilerin yaş toplamının 30 dan büyük olanları getiren sorgu.

select adi, sum(yasi)from vatandas
group by adi having sum(yasi)>30

 

 



yorumlar
64x64

cuneyt

26 Mart 2018 Pazartesi

Merhaba Hocam,

SELECT S.KOD2 AS MARKA, SUM(SHT.TUTAR) AS TOPLAMSATIS
FROM F0105TBLSTOKLAR S
INNER JOIN F0105D0010TBLSTOKHAREKETLERI SHT ON SHT.STOKNO = S.IND
WHERE SHT.IZAHAT=21
GROUP BY S.KOD2;

Yukarıdaki sql kodları ile markalara ait toplam satış tutarlarını çekebiliyorum. Ancak markaların ocak,subat,mart şeklinde aylık satışlarını alamıyorum. Yardımcı olursanız çok sevinirim.
 

Yorum yaz