Sobes.tech
Middle

Milleks kasutatakse akna funktsioone SQL-is?

sobes.tech AI

Vastus AI-lt

Akna funktsioonid SQL-is teostavad andmete kogumist ridade kogumis, mis on seotud praeguse reaga, kuid samal ajal ei grupeerita tulemuste kogumit. See võimaldab teha arvutusi, nagu kumulatiivsed summad, liikuvad keskmised või reitingud, säilitades samal ajal kõik algse päringu read:

Akna funktsioonide peamised eesmärgid:

  • Reiting: iga rea jaoks määrata reiting kindlas aknas:
-- Saada töötajate reiting palga järgi iga osakonna sees
SELECT
 employee_name,
 salary,
 department,
 RANK() OVER (PARTITION BY department ORDER BY salary DESC) as department_rank
FROM
 employees;
  • Statistiliste näitajate arvutamine ilma grupi loomata: andmete kogumine "aknas", säilitades ridade üksikasjad:
-- Arvutada keskmine palk kogu osakonnas iga rea kohta
SELECT
 employee_name,
 salary,
 department,
 AVG(salary) OVER (PARTITION BY department) as avg_department_salary
FROM
 employees;
  • Võrdlus praeguse rea ja teiste ridade vahel aknas: juurdepääs andmetele eelnevatest või järgmistest ridadest:
-- Saada eelneva töötaja palk osakonnas, madalamast palgast kõrgemale
SELECT
 employee_name,
 salary,
 department,
 LAG(salary, 1, 0) OVER (PARTITION BY department ORDER BY salary DESC) as previous_salary
FROM
 employees;
  • Kumulatiivsed arvutused: summad, keskmised ja muud kogumid kasvavas järjekorras:
-- Arvutada kumulatiivne müügisumma kuupäeva järgi
SELECT
 sale_date,
 amount,
 SUM(amount) OVER (ORDER BY sale_date) as cumulative_sales
FROM
 sales;

Erinevalt tavalistest kogumistoimingutest (GROUP BY), akna funktsioonid ei suru ridu kokku, muutes need võimsaks tööriistaks analüütiliste päringute ja andmete üksikasjalikuks analüüsiks.