Sobes.tech
Junior — Middle

Έχετε εμπειρία στη χρήση συναρτήσεων παραθύρου κατά την εργασία με ερωτήματα SQL;

sobes.tech AI

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

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

Κύριες λειτουργίες παραθύρου:

  • ROW_NUMBER() — αριθμηση γραμμών εντός παραθύρου
  • RANK(), DENSE_RANK() — κατάταξη λαμβάνοντας υπόψη ισοβαθμίες
  • SUM(), AVG(), COUNT() — συναθροιστικές λειτουργίες σε παράθυρο

Παράδειγμα: να πάρετε μια λίστα υπαλλήλων με το μισθό τους και τον αριθμό σειράς ανά τμήμα σε φθίνουσα σειρά μισθού:

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

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