Sobes.tech
Middle

Τι είναι οι συναρτήσεις παραθύρου σε SQL και ποιος είναι ο σκοπός τους;

sobes.tech AI

Απάντηση από AI

Οι συναρτήσεις παραθύρου (window functions) σε SQL είναι συναρτήσεις που πραγματοποιούν υπολογισμούς σε ένα σύνολο γραμμών που σχετίζονται με την τρέχουσα γραμμή, χωρίς να ομαδοποιούν τα αποτελέσματα σε μία γραμμή, όπως συμβαίνει με τις συναρτήσεις αθροίσματος.

Επιτρέπουν, για παράδειγμα, τον υπολογισμό κυλιόμενων αθροισμάτων, την κατάταξη γραμμών, τον υπολογισμό συσσωρευτικών αθροισμάτων, μέσων όρων κ.ά., διατηρώντας τον αρχικό αριθμό γραμμών στο αποτέλεσμα.

Παράδειγμα χρήσης της συνάρτησης παραθύρου ROW_NUMBER():

SELECT
    employee_id,
    department_id,
    salary,
    ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) AS rank_in_dept
FROM employees;

Εδώ, για κάθε υπάλληλο, υπολογίζεται η κατάταξή του βάσει μισθού εντός του τμήματος, διατηρώντας όλες τις γραμμές.

Οι συναρτήσεις παραθύρου είναι χρήσιμες για ανάλυση, αναφορές και πολύπλοκους υπολογισμούς όπου πρέπει να βλέπει κανείς το πλαίσιο κάθε γραμμής σε σχέση με τις άλλες.