Kuidas erinevad aknafunktsioonid GROUP BY-st?
sobes.tech AI
Vastus AI-lt
Aknu funktsioonid ja GROUP BY SQL-is teenivad erinevaid eesmärke, kuigi mõlemad töötavad kokkuvõtlike andmetega.
GROUP BY ühendab read vastavalt määratud veergudele ja tagastab iga grupi kohta ühe rea. Võib rakendada aggregaatfunktsioone (SUM, COUNT jne), kuid tulemus vähendatakse üheks reaks iga grupi kohta.
Aknafunktsioonid arvutavad agregaatide või teiste arvutuste tulemused rühmas, mida nimetatakse aknaks, ilma et vähendataks tagastatavate ridade arvu. Iga rida säilitatakse, kuid sellele lisatakse akna põhjal arvutatud funktsiooni tulemus.
Näide:
SELECT
employee_id,
department_id,
salary,
AVG(salary) OVER (PARTITION BY department_id) AS avg_dept_salary
FROM employees;
Siin arvutatakse iga rea kohta keskmine palk osakonna kaupa, kuid read ei grupeeru — näeme kõiki töötajaid koos lisaveeruga.
Erinevalt GROUP BY-st võimaldavad akna funktsioonid andmeid analüüsida grupi kontekstis, ilma et kaotaksime üksikute ridade detaile.