Pencere fonksiyonları ile GROUP BY arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
SQL'de pencere fonksiyonları ve GROUP BY farklı amaçlar için kullanılır, her ikisi de toplu verilerle çalışır.
GROUP BY belirtilen sütunlara göre satırları birleştirir ve her grup için bir satır döndürür. Toplam fonksiyonları (SUM, COUNT vb.) uygulanabilir, ancak sonuç her grup için tek bir satıra indirgenir.
Pencere fonksiyonları, bir pencere adı verilen satır kümesi üzerinde toplamlar veya diğer hesaplamalar yapar, ancak döndürülen satır sayısını azaltmaz. Her satır korunur, ancak pencere üzerinde hesaplanan fonksiyon sonucu eklenir.
Örnek:
SELECT
employee_id,
department_id,
salary,
AVG(salary) OVER (PARTITION BY department_id) AS avg_dept_salary
FROM employees;
Burada, her satır için departman başına ortalama maaş hesaplanır, ancak satırlar gruplanmaz — tüm çalışanlar ve ek bir sütun ile görünür.
GROUP BY'den farklı olarak, pencere fonksiyonları veriyi grup bağlamında analiz etmeye olanak tanır, bireysel satır detaylarını kaybetmeden.