Sobes.tech
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ıralama
  • SUM(), 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.