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