Bu yazım ile sql select ifadeleri ile ilgili son yazımı da yazmış olacağım. Bu yazıdan önce temel select cümleleri , select where koşul cümlelerini ve select group by cümlelerinden bahsetmiştim.

İlk olarak biraz having yapısından bahsedelim. Sql select sorgusunda bir koşul belirtmek istediğimiz zaman nasıl ki where deyimini kullanıyorsak group by fonksiyonları içerisinde koşul belirtmek istiyorsak having ifadesini kullanırız.

Having Syntax:

Select [column,] group function(column), …
From table
[Where condition(Koşul)]
[Group by column]
[Having group_condition(Grup koşulları)]

Having Fonksiyonu

Örnek:
Bu sorgu ile oluşturduğumuz grup fonksiyonunu having ile koşula bağlamış oluyoruz. Yani employees tablosundaki max(salary) değeri 10000 değerinden büyük olan değerler gösterilir. 

select department_id,max(salary) from employees
group by department_id
having max(salary)>10000;

Son olarak ise Order By fonksiyonundan bahsedelim. Order in İngilizce kelime anlamı sıralanış demektir. Sql cümlelerde ise order by ifadesini biz değerlerin sıralanışını belirlemek istediğimiz zaman kullanırız. 
Order By Syntax:
Select [column,] group function(column), … 
From table 
[Where condition(Koşul)] 
[Group by column]
[Having group_condition(Grup koşulları)]
[Order by column] asc or desc
ASC = Küçükten büyüğe doğru sırala.
DESC= Büyükten küçüğe doğru sırala.
Asc veya Desc ifadelerinden biri seçilmezse ASC ye göre yani küçükten büyüğe göre sıralar.

Örnek:
Yukarıdaki having konusunda verdiğimiz sql cümle örneğinin department_id lerini küçükten büyüğe sıralayabiliriz.
select department_id,max(salary) from employees
group by department_id
having max(salary)>10000
order by department_id asc
Order By fonksiyonunda string bir ifadeyi sıralamak istiyorsanızda aynen uygulanır fakat bu sefer sayı olmadığı için alfabetik sıraya göre değerleri sıralar.
Örnek:
select first_name,department_id,max(salary) from employees
group by department_id,first_name
having max(salary)>10000
order by first_name desc
Having fonksiyonu ve Order by fonksiyonu hakkındaki yazımın sonuna geldik. Takıldığınız noktaları yorum kısmından sorabilirsiniz.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir