|
|||
Sql Order by ve Group by Komutlarının Kullanımı
ORDER BY operatörü ile sonuçları istediğiniz sütuna göre dizdirebilirsiniz. ORDER BY operatörü asc komutu ile sıralamayı azdan çoğa doğru yapar. Eğer sıralamanın çoktan aza doğru olmasını istersek DESC komutu operatöre eklenmesi yeterlidir. select * from personel order by per_ad
personel tablomuzda personel isimlerini a dan z ye sıralar ve tüm kayıtlarıgösterir. select * from personel order by per_soyad asc
yine personel tablomuzdaki kayıtlarımızı soyismine göre a dan z ye sıralar. asc kavramı bir üstteki örnekte olduğu gibi sıralamanın a-z olduğunu belirtir. select per_ad from personel order by per_ad desc
personel adını z-a ya sıralar. select per_ad,per_soyad from personel order by per_soyad desc
personel adını ve soyadını gösterir. gösterirke soyismine göre z-a ya sıralar. ORDER BY ile bir alana göre sıralama işlemleri yapılabildiği gibi birden fazla alana göre de sıralama yapılabilmektedir. select * from personel order by per_ad,per_soyad
ilk önce ada göre sıralama yapar.adı eşit olan personelleri ise ikinci yazdığımız alana göre sıralar select * from personel order by per_ad , per_soyad desc
group by: Bu dersimizde kullanacağımız veritabanımız: select ulke from calisanlar group by ulke
komutuyla tablomuzda bulunan ülkeleri listeleri. sonuç:almanya,fransa,türkiye ve usa çıkacaktır. ülkelerin ortalama maaşını bulalım select ulke,AVG(maas) from calisanlar group by ulke
her ülkeden kaç kişi çalıştığını bulalım select ulke,COUNT(*) as sayi from calisanlar group by ulke
bayan ve erkek işcilerin ortalama maaşlarını bulalım select cinsiyet,AVG(maas) as sayi from calisanlar group by cinsiyet
GROUP BY ifadesinden sonra birden fazla alan kullanabiliriz. Örneğin kayıtları önce ülkelere göre gruplayıp sonra her bir grubu kendi içinde şehirlere göre gruplamak istesek: select ulke,sehir from calisanlar group by ulke,sehir
Türkiye dışındaki gruplarda tek bir şehir varken, Türkiye grubunun da kendi içinde 5 gruba ayrıldığına dikkat edin. Her bir gruba ait kaç adet çalışan olduğunu görmek istersek sorguya ufak bir ekleme yapmamız yeterli olur: --select ulke,sehir,COUNT(*) as sayi from calisanlar group by ulke,sehir
Şimdi de her ülke için bayan ve erkek çalışanların sayısını ve yaş ortalamalarını bulalım: --select ulke,cinsiyet,AVG(yas),COUNT(*) from calisanlar group by ulke,cinsiyet
--select ulke,cinsiyet,AVG(yas),COUNT(*) from calisanlar where maas>2000 group by ulke,cinsiyet
|