Junior — Middle
SQL sorguları ile çalışırken pencere fonksiyonlarını kullanma deneyiminiz var mı?
sobes.tech yapay zeka
AI'dan gelen yanıt
Evet, SQL sorguları üzerinde çalışırken pencere fonksiyonları (window functions) kullandım. Bunlar, sonucu gruplaymadan, mevcut satırla ilişkili satır kümesi üzerinde hesaplamalar yapmaya olanak tanır ve analizler ile karmaşık sorgular için kullanışlıdır.
Ana pencere fonksiyonları:
ROW_NUMBER()— satırların pencere içindeki sıralamasıRANK(),DENSE_RANK()— eşitlikleri dikkate alan sıralamaSUM(),AVG(),COUNT()— pencere üzerinde toplu fonksiyonlar
Örnek: çalışanların maaşları ve departmanlarına göre azalan sırayla sıralanmış sıralaması ile liste alınması:
SELECT
employee_id,
department_id,
salary,
ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) AS salary_rank
FROM employees;
Burada, PARTITION BY veriyi departmanlara ayırır ve ORDER BY her departman içindeki sıralamayı belirler. Pencere fonksiyonları, detay kaybı olmadan karmaşık analitik sorgular yapmaya olanak tanır.