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;