Sobes.tech
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), ფანჯრის ფუნქციები არ იკეცავს სვეტებს, რაც მათ ხდის ძლიერი ინსტრუმენტს ანალიტიკური შეკითხვებისა და მონაცემების დეტალური ანალიზისთვის.