Sobes.tech
Middle

Oyna funksiyalari va guruhlash (GROUP BY) qanday farq qiladi?

sobes.tech AI

AIdan javob

SQL'da oynali funksiyalar va GROUP BY turli maqsadlar uchun xizmat qiladi, garchi ikkalasi ham agregat ma'lumotlar bilan ishlaydi.

GROUP BY satrlarni ko'rsatilgan ustunlar bo'yicha birlashtiradi va har bir guruh uchun bitta satrni qaytaradi. SUM, COUNT va boshqalar kabi agregat funksiyalarni qo'llash mumkin, ammo natija har guruh uchun bitta satrga qisqartiriladi.

Oynali funksiyalar satrlar to'plami bo'lib, oynasi deb ataladigan, unda agregatlar yoki boshqa hisoblashlar amalga oshiriladi, lekin qaytariladigan satrlar soni kamaytirilmaydi. Har bir satr saqlanadi, lekin unga oynada hisoblangan funksiyaning natijasi qo'shiladi.

Misol:

SELECT
  employee_id,
  department_id,
  salary,
  AVG(salary) OVER (PARTITION BY department_id) AS avg_dept_salary
FROM employees;

Bu yerda, har bir satr uchun bo'lim bo'yicha o'rtacha maosh hisoblanadi, lekin satrlar guruhlanmaydi — barcha xodimlar va qo'shimcha ustun bilan ko'rinadi.

GROUP BY dan farqli o'laroq, oynali funksiyalar ma'lumotlarni guruh kontekstida tahlil qilish imkonini beradi, shaxsiy satr tafsilotlarini yo'qotmasdan.