Middle
Mire használják az ablakfüggvényeket SQL-ben?
sobes.tech MI
Válasz az MI-től
Az SQL ablakfüggvényei az aktuális sorhoz kapcsolódó sorok halmazában végzik az adatok aggregálását, de nem csoportosítják az eredményhalmazt. Ez lehetővé teszi olyan számítások végrehajtását, mint az összegző kumulatív értékek, mozgó átlagok vagy rangsorolások, miközben minden eredeti lekérdezés sorát megőrzi.
Az ablakfüggvények fő céljai:
- Rangsorolás: Minden sorhoz rangot rendel egy meghatározott ablakon belül.
-- A dolgozók rangsorolása fizetés szerint minden osztályon belül SELECT employee_name, salary, department, RANK() OVER (PARTITION BY department ORDER BY salary DESC) as department_rank FROM employees; - Statisztikák számítása csoport nélküli sorokra: Adatok aggregálása "ablak" belül, miközben a részletek szinten megmaradnak.
-- Átlagfizetés számítása az egész osztályra minden sor esetében SELECT employee_name, salary, department, AVG(salary) OVER (PARTITION BY department) as avg_department_salary FROM employees; - A jelenlegi sor összehasonlítása más sorokkal az ablakban: Hozzáférés az előző vagy következő sorok adataihoz az ablakban.
-- Az előző alkalmazott fizetésének lekérése az osztályban csökkenő sorrendben SELECT employee_name, salary, department, LAG(salary, 1, 0) OVER (PARTITION BY department ORDER BY salary DESC) as previous_salary FROM employees; - Kumulatív összegzések: Összegek, átlagok és más aggregátumok számítása növekvő kumulációban.
-- Az értékesítések kumulatív összegének számítása dátum szerint SELECT sale_date, amount, SUM(amount) OVER (ORDER BY sale_date) as cumulative_sales FROM sales;
A normál aggregáló függvényektől (GROUP BY) eltérően, az ablakfüggvények nem egyesítik a sorokat, így erőteljes eszközt jelentenek elemző lekérdezésekhez és részletes adatelemzéshez.