Sobes.tech
Junior — Middle

Van tapasztalata ablakfüggvények használatában SQL-lekérdezések során?

sobes.tech MI

Válasz az MI-től

Igen, SQL-lekérdezésekkel való munkám során ablakfüggvényeket (window functions) használtam. Ezek lehetővé teszik számítások végrehajtását egy olyan sorokból álló halmazon, amely kapcsolódik a jelenlegi sorhoz, anélkül, hogy az eredményt csoportosítanánk, ami hasznos elemzésekhez és összetett lekérdezésekhez.

Fő ablakfüggvények:

  • ROW_NUMBER() — sorok számozása az ablakon belül
  • RANK(), DENSE_RANK() — rangsorolás egyenlőségek figyelembevételével
  • SUM(), AVG(), COUNT() — aggregált függvények az ablakon belül

Példa: listázza az alkalmazottakat a fizetésükkel és a részleg szerinti sorszámukkal csökkenő sorrendben:

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

Itt a PARTITION BY az adatokat részlegek szerint osztja fel, az ORDER BY pedig meghatározza a sorrendet minden részlegen belül. Az ablakfüggvények lehetővé teszik összetett elemző lekérdezések végrehajtását részletek elvesztése nélkül.