GROUP BY ve HAVING
Verileri belirli sütunlara göre gruplama ve gruplanmış verileri filtreleme.
Agregasyon fonksiyonları genellikle tüm tablo yerine verileri kategorize ederek hesaplamak için kullanılır. Bu gruplama işlemini GROUP BY ifadesi sağlar.
Gruplanmış ve hesaplanmış veri kümeleri üzerinde filtreleme yapmak için normal WHERE kullanamayız. Bunun yerine gruplanmış sonuçları filtreleyen HAVING şartı kullanılır.
Grup Analizleri ve Filtreleme Örnekleri
-- Departmanlara göre ortalama maaşları gruplayarak listeleme
SELECT department, AVG(salary) AS avg_sal
FROM employees
GROUP BY department;
-- Ortalama maaşı 45000'den yüksek olan departmanları listeleme
-- Not: HAVING, GROUP BY'dan sonra çalışır
SELECT department, AVG(salary) AS avg_sal
FROM employees
GROUP BY department
HAVING AVG(salary) > 45000;
-- Departman bazlı çalışan sayılarını listeleme, sadece 5'ten çok çalışanı olanları getirme
SELECT department, COUNT(*) AS emp_count
FROM employees
GROUP BY department
HAVING COUNT(*) > 5;