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

Κατανόηση λειτουργιών παραθύρων

Οι λειτουργίες παραθύρων λειτουργούν σε ένα καθορισμένο εύρος γραμμών που σχετίζονται με την τρέχουσα γραμμή, που ορίζεται από την ρήτρα OVER (). Αυτό επιτρέπει υπολογισμούς που θεωρούν πολλαπλές σειρές μέσα σε ένα χωρισμό δεδομένων, καθιστώντας την ανάλυση πιο αποτελεσματική και αναγνώσιμη.

Κοινοί τύποι λειτουργιών παραθύρων

  • RANK() και DENSE RANK(): Αναθέτει τις κατατάξεις σε σειρές μέσα σε ένα χώρισμα.
  • ROW NUMBER(): Παρέχει έναν μοναδικό διαδοχικό αριθμό για κάθε γραμμή.
  • ΛΕΑΔ () και ΟΤ (): Δεδομένα πρόσβασης από επόμενες ή προηγούμενες σειρές.
  • SUM(), AVG(), MIN(), MAX(): Συγκεντρωτικές λειτουργίες που χρησιμοποιούνται ως λειτουργίες παραθύρων για την εκτέλεση συνόλων και μέσων όρων.

Πρακτικές εφαρμογές

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

Παράδειγμα: Υπολογισμός του συνόλου εκτέλεσης

Το ακόλουθο ερώτημα SQL δείχνει πώς να υπολογίσει ένα τρέχον σύνολο πωλήσεων για κάθε προϊόν: