Pəncərə funksiyaları ilə GROUP BY arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
SQL-də pəncərə funksiyaları və GROUP BY müxtəlif məqsədlər üçün istifadə olunur, hər ikisi də toplu məlumatlarla işləyir.
GROUP BY satırları göstərilən sütunlara görə birləşdirir və hər qrup üçün bir satır qaytarır. SUM, COUNT və s. kimi toplama funksiyaları tətbiq oluna bilər, lakin nəticə hər qrup üçün tək satıra endirilir.
Pəncərə funksiyaları satırların toplusu olan pəncərə üzərində toplama və ya digər hesablamalar edir, lakin qaytarılan satırların sayını azaltmır. Hər satır saxlanılır, lakin ona pəncərə üzərində hesablanan funksiyanın nəticəsi əlavə olunur.
Nümunə:
SELECT
employee_id,
department_id,
salary,
AVG(salary) OVER (PARTITION BY department_id) AS avg_dept_salary
FROM employees;
Burada, hər satır üçün şöbə üzrə orta maaş hesablanır, lakin satırlar qruplaşdırılmır — bütün işçilər və əlavə sütun ilə görünür.
GROUP BY-dən fərqli olaraq, pəncərə funksiyaları məlumatları qrup kontekstində analiz etməyə imkan verir, fərdi satırların detalları itirilmədən.