Sobes.tech
Middle+

Írtál ablakfüggvényeket és CTE-ket?

sobes.tech MI

Válasz az MI-től

Igen, aktívan használom az ablakfüggvényeket (window functions) és a CTE-ket (Common Table Expressions) adatbázisokkal való munkában, különösen összetett lekérdezésekben elemzés és aggregálás céljából.

Az ablakfüggvények lehetővé teszik, hogy számításokat végezzünk egy olyan sorokból álló halmazon, amely kapcsolódik a jelenlegi sorhoz, anélkül, hogy az adatokat csoportosítanánk, például mozgó összeg, rangsor vagy kumulatív értékek számítására.

A CTE-k megkönnyítik az összetett lekérdezések olvasását és karbantartását, ideiglenes névvel ellátott adathalmazokat deklarálva, amelyeket a fő lekérdezésben lehet használni.

SQL-ben például egy ablakfüggvény:

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

És egy CTE például:

WITH DepartmentSalaries AS (
    SELECT department_id, AVG(salary) as avg_salary
    FROM employees
    GROUP BY department_id
)
SELECT e.employee_id, e.salary, d.avg_salary
FROM employees e
JOIN DepartmentSalaries d ON e.department_id = d.department_id;