Gruplama ve İleri Düzey Özetleme: GROUP BY, HAVING, GROUPING SETS, ROLLUP
SQL Server’da gruplama, verileri belirli kriterlere göre toplamak ve özetlemek için kullanılan önemli bir mekanizmadır. Bu makalede, GROUP BY, HAVING, GROUPING SETS, ve ROLLUP ifadelerini inceleyeceğiz. Bu ifadeler, veri analizi ve raporlama için çok güçlü araçlardır.
GROUP BY
GROUP BY ifadesi, verileri belirli bir kriterlere göre gruplar. Her grup için belirli bir özetleme işlemi (örneğin, SUM, AVG, COUNT) uygulanır.
-- T-SQL Kodları
SELECT Department, COUNT(*) AS EmployeeCount
FROM Employees
GROUP BY Department;Code language: SQL (Structured Query Language) (sql)
Yukarıdaki kod, her departman için çalışan sayısını hesaplar.
HAVING
HAVING ifadesi, gruplamadan sonra filtreleme yapmak için kullanılır. WHERE ifadesi gibi çalışır, ancak grup düzeyinde filtreleme yapar.
-- T-SQL Kodları
SELECT Department, COUNT(*) AS EmployeeCount
FROM Employees
GROUP BY Department
HAVING COUNT(*) > 10;Code language: SQL (Structured Query Language) (sql)
Yukarıdaki kod, çalışan sayısı 10’dan fazla olan departmanları listeler.
GROUPING SETS
GROUPING SETS ifadesi, birden fazla gruplama kümesi için sonuçları birleştirir. Bu, karmaşık gruplamaları daha kolay hale getirir.
-- T-SQL Kodları
SELECT Department, Region, COUNT(*) AS EmployeeCount
FROM Employees
GROUP BY GROUPING SETS (
(Department, Region),
(Department),
(Region),
()
);Code language: SQL (Structured Query Language) (sql)
Yukarıdaki kod, departman, bölge, her ikisi de ve hiçbiri olmayan gruplamalar için sonuçları birleştirir.
ROLLUP
ROLLUP ifadesi, gruplamaları hiyerarşik olarak genişletir. Bu, üst düzey gruplamalar için toplam sonuçları da döndürür.
-- T-SQL Kodları
SELECT Department, Region, COUNT(*) AS EmployeeCount
FROM Employees
GROUP BY ROLLUP (Department, Region);Code language: SQL (Structured Query Language) (sql)
Yukarıdaki kod, departman ve bölge gruplamaları için sonuçları döndürür, ayrıca her bir departman için toplam sonuçları da döndürür.
Özet
SQL Server’da gruplama ve özetleme, veri analizi ve raporlama için çok güçlü araçlardır. GROUP BY, HAVING, GROUPING SETS, ve ROLLUP ifadelerini kullanarak karmaşık sorgular oluşturabilirsiniz. Bu ifadelerin doğru ve etkili bir şekilde kullanılması, veri analizinin kalitesini ve performansını artırabilir.





