Middle
SQL-ში ფანჯრის ფუნქციები რა მიზნით გამოიყენება?
sobes.tech AI
პასუხი AI-სგან
SQL-ის ფანჯრის ფუნქციები ახორციელებს მონაცემების ანალიტიკურ შეკვეთებს სვეტების ნაკრებში, რომლებიც დაკავშირებულია მიმდინარე სვეტთან, მაგრამ ამავდროულად არ აგროვებს შედეგების ნაკრებს. ეს საშუალებას იძლევა შეასრულოს გამოთვლები, როგორიცაა კუმულატიური ჯამები, მოძრავი საშუალო ან რეიტინგი, ამავდროულად ინარჩუნებს თავდაპირველი შეკითხვის ყველა სვეტს:
ფანჯრის ფუნქციების ძირითადი მიზნები:
- რეიტინგი: თითოეულ სვეტს მიენიჭოს რეიტინგი გარკვეულ ფანჯარაში:
-- თანამშრომლების რეიტინგის მიღება ხელფასის მიხედვით თითოეულ განყოფილებაში
SELECT
employee_name,
salary,
department,
RANK() OVER (PARTITION BY department ORDER BY salary DESC) as department_rank
FROM
employees;
- სტატისტიკის გამოთვლა ჯგუფის გარეშე: მონაცემების ანალიტიკური შეჯამება "ფანჯარაში" შენარჩუნებით სვეტების დონეზე:
-- საშუალო ხელფასის გამოთვლა მთელ განყოფილებაში თითოეულ სვეტზე
SELECT
employee_name,
salary,
department,
AVG(salary) OVER (PARTITION BY department) as avg_department_salary
FROM
employees;
- მიმდინარე სვეტთან შედარება სხვა სვეტებთან: წვდომა წინამორბედი ან შემდგომი სვეტების მონაცემებზე:
-- წინამორბედი თანამშრომლის ხელფასის მიღება განყოფილებაში ხელფასის კლებადობით
SELECT
employee_name,
salary,
department,
LAG(salary, 1, 0) OVER (PARTITION BY department ORDER BY salary DESC) as previous_salary
FROM
employees;
- კუმულატიური გამოთვლები: ჯამები, საშუალო და სხვა შეჯამებები ზრდადობით:
-- გაყიდვების კუმულატიური ჯამის გამოთვლა თარიღის მიხედვით
SELECT
sale_date,
amount,
SUM(amount) OVER (ORDER BY sale_date) as cumulative_sales
FROM
sales;
განსხვავებით ჩვეულებრივი შეჯამების ფუნქციებისგან (GROUP BY), ფანჯრის ფუნქციები არ იკეცავს სვეტებს, რაც მათ ხდის ძლიერი ინსტრუმენტს ანალიტიკური შეკითხვებისა და მონაცემების დეტალური ანალიზისთვის.