Sobes.tech
Middle

Ի՞նչ տարբերություն կա պատուհանի ֆունկցիայի և ամփոփող ֆունկցիայի միջև 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-ով։