Middle
SQL'de pencere fonksiyonları ne için kullanılır?
sobes.tech yapay zeka
AI'dan gelen yanıt
SQL'deki pencere fonksiyonları, mevcut satırla ilişkili satır kümesinde verileri toplar, ancak sonuç kümesini gruplayamaz. Bu, kümülatif toplamlar, hareketli ortalamalar veya sıralama gibi hesaplamaların yapılmasına olanak tanır ve orijinal sorgunun tüm satırlarını korur.
Pencere fonksiyonlarının kullanımının temel amaçları:
- Sıralama: Belirli bir pencerede her satıra bir sıra atanması.
-- Her departman içindeki çalışanların maaşlarına göre sıralama SELECT employee_name, salary, department, RANK() OVER (PARTITION BY department ORDER BY salary DESC) as department_rank FROM employees; - Gruplama olmadan istatistiklerin hesaplanması: Satırların "pencere" içinde verilerin toplanması, detay seviyesinin satır seviyesinde korunması.
-- Her satır için departman genelinde ortalama maaşı hesaplama SELECT employee_name, salary, department, AVG(salary) OVER (PARTITION BY department) as avg_department_salary FROM employees; - Mevcut satır ile diğer satırların karşılaştırılması: Pencere içindeki önceki veya sonraki satırlara erişim.
-- Maaşına göre azalan sırayla departmandaki önceki çalışanın maaşını al SELECT employee_name, salary, department, LAG(salary, 1, 0) OVER (PARTITION BY department ORDER BY salary DESC) as previous_salary FROM employees; - Kümülatif toplam hesaplamaları: Toplamlar, ortalamalar ve diğer toplamlara artan toplamlar şeklinde hesaplamalar.
-- Satışların tarihine göre kümülatif toplamını hesapla SELECT sale_date, amount, SUM(amount) OVER (ORDER BY sale_date) as cumulative_sales FROM sales;
Normal toplama fonksiyonlarından (GROUP BY) farklı olarak, pencere fonksiyonları satırları birleştirmez, bu da onları analitik sorgular ve detaylı veri analizi için güçlü bir araç haline getirir.