Middle
SQL-də pəncərə funksiyaları nə üçün istifadə olunur?
sobes.tech Süni İntellekt
AI-dan cavab
SQL-də pəncərə funksiyaları cari sətirlə əlaqəli sətirlər toplusunda məlumatların toplanmasını həyata keçirir, lakin nəticə toplusunu qruplaşdırmır. Bu, kümülatif cəm, hərəkətli orta və ya reytinq kimi hesablamaları həyata keçirməyə imkan verir və eyni zamanda orijinal sorğunun bütün sətirlərini saxlayır.
Pəncərə funksiyalarının əsas məqsədləri:
- Reytinq: Müəyyən bir pəncərədə hər sətirə reytinq təyin etmək.
-- Hər bir şöbə daxilində əməkdaşların maaşına görə reytinqini almaq SELECT employee_name, salary, department, RANK() OVER (PARTITION BY department ORDER BY salary DESC) as department_rank FROM employees; - Qruplaşdırmadan statistikaların hesablanması: Məlumatların "pəncərə" daxilində toplanması, satır səviyyəsində detallığın saxlanması.
-- Hər bir sətir üçün şöbə üzrə orta maaşı hesablamaq SELECT employee_name, salary, department, AVG(salary) OVER (PARTITION BY department) as avg_department_salary FROM employees; - Cari sətiri digər sətirlərlə müqayisə etmək: Pəncərə daxilində əvvəlki və ya növbəti sətirlərə giriş.
-- Maaşına görə azalan sırayla şöbədəki əvvəlki əməkdaşın maaşını almaq SELECT employee_name, salary, department, LAG(salary, 1, 0) OVER (PARTITION BY department ORDER BY salary DESC) as previous_salary FROM employees; - Yığım ilə hesablamalar: Yığma, orta və digər agregasiyaların artan yığımda hesablanması.
-- Satışların tarixə görə yığımını hesablamaq SELECT sale_date, amount, SUM(amount) OVER (ORDER BY sale_date) as cumulative_sales FROM sales;
Ənənəvi agregasiya funksiyalarından (GROUP BY) fərqli olaraq, pəncərə funksiyaları sətirləri birləşdirmir, bu da onları analitik sorğular və detallı məlumat analizi üçün güclü alətə çevirir.