GROUP BY ve HAVING
SQL içinde group by ve havıng kavramını, kullanım sınırlarını ve güvenilir uygulama biçimini öğrenin.
GROUP BY ve HAVING, SQL ile toplulaştırma ve analiz çalışırken bileşenler arasındaki sorumlulukları belirginleştirmek için kullanılan yaklaşımı açıklar. Toplulaştırma satırları gruplara indirger; pencere fonksiyonları ise ayrıntı satırlarını koruyarak grup bağlamında hesap yapar.
Gruplanmayan sütunları gelişigüzel seçmek ve tarihleri metin gibi karşılaştırmak taşınabilir olmayan, yanlış sonuçlar üretir. Girdinin biçimini ve geçerliliğini sınırda denetlemek, iç katmanların daha sade kalmasını sağlar. Aşağıdaki örnek, konuyu küçük ve izlenebilir bir akış içinde gösterir.
Yaygın hata ve doğru yaklaşım
Kavramı her durumda uygulanacak bir kural gibi kullanmak gereksiz karmaşıklık üretir. Önce problemin sınırını belirleyin, ardından en küçük yeterli yapıyı seçin.
Sonuç
GROUP BY ve HAVING, doğru sınırlar ve açık bir sözleşmeyle kullanıldığında SQL kodunun güvenilirliğini artırır. Önce doğruluğu kurun; ölçüm göstermeden karmaşık optimizasyona yönelmeyin.
SELECT category_id,
COUNT(*) AS book_count,
AVG(page_count) AS average_pages
FROM books
GROUP BY category_id
HAVING COUNT(*) >= 2;