Sobes.tech
Middle

Kāda ir atšķirība starp loga funkciju un agregācijas funkciju SQL?

sobes.tech AI

Atbilde no AI

SQL apkopojuma funkcija (piemēram, SUM, AVG, COUNT) aprēķina vienu galīgo vērtību grupai rindu un atgriež vienu rindu katrai grupai. Piemēram, SUM(salary) aprēķinās visu grupu algu summu.

Logu funkcija (window function) arī darbojas ar rindu grupām, bet atgriež rezultātu katrai rindai, ņemot vērā loga (rindu kopums ap aktuālo rindu) kontekstu. Piemēram, SUM(salary) OVER (PARTITION BY department) atgriezīs algu summu pa nodaļām katrai rindai, nesamazinot rezultātu uz vienu rindu.

Piemērs:

SELECT employee_id, department, salary,
       SUM(salary) OVER (PARTITION BY department) AS dept_salary_sum
FROM employees;

Šeit katrai rindai tiks parādīta nodaļas algu summa, nevis viena rinda pa nodaļu, kā ar agregācijas funkciju ar GROUP BY.