Sobes.tech
Junior — Middle

Aveți experiență în utilizarea funcțiilor de fereastră atunci când lucrați cu interogări SQL?

sobes.tech AI

Răspuns de la AI

Da, în lucrul cu interogări SQL, am folosit funcții de fereastră (window functions). Acestea permit efectuarea de calcule asupra unui set de rânduri legate de rândul curent, fără a grupa rezultatele, ceea ce este util pentru analize și interogări complexe.

Funcții principale de fereastră:

  • ROW_NUMBER() — numerotarea rândurilor în fereastră
  • RANK(), DENSE_RANK() — clasificare ținând cont de egalități
  • SUM(), AVG(), COUNT() — funcții agregate pe fereastră

Exemplu: obțineți o listă de angajați cu salariul lor și numărul de ordine pe departament în ordine descrescătoare a salariului:

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

Aici, PARTITION BY împarte datele pe departamente, iar ORDER BY stabilește ordinea în fiecare departament. Funcțiile de fereastră permit realizarea de interogări analitice complexe fără a pierde detalii.