Ի՞նչ տարբերություն կա պատուհանի ֆունկցիայի և ամփոփող ֆունկցիայի միջև SQL-ում։
sobes.tech AI
Պատասխան AI-ից
SQL-ում ամփոփիչ ֆունկցիան (օրինակ՝ SUM, AVG, COUNT) հաշվարկում է տողերի խմբի վերջնական արժեքը և վերադարձնում մեկ տող յուրաքանչյուր խմբի համար: Օրինակ, SUM(salary) կհաշվարկի ամբողջ խմբի աշխատավարձերի գումարը:
Վահանակային ֆունկցիան (window function) նույնպես աշխատում է տողերի խմբերի հետ, բայց վերադարձնում է արդյունքը յուրաքանչյուր տողի համար՝ հաշվի առնելով վահանակի կոնտեքստը (տողերի հավաքածու՝ շրջապատում ընթացիկ տողը): Օրինակ, SUM(salary) OVER (PARTITION BY department) կվերադարձնի աշխատավարձերի գումարը բաժնի համար յուրաքանչյուր տողի համար՝ առանց արդյունքը մեկ տող դարձնելու:
Օրինակ՝
SELECT employee_id, department, salary,
SUM(salary) OVER (PARTITION BY department) AS dept_salary_sum
FROM employees;
Այստեղ յուրաքանչյուր տողի համար կցուցադրվի բաժնի աշխատավարձերի գումարը, ոչ թե մեկ տող՝ բաժնի համար, ինչպես երբ օգտագործվում է ամփոփիչ ֆունկցիա՝ GROUP BY-ով։