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), վահանակային ֆունկցիաները չեն խցկում տողերը, ինչը նրանց դարձնում է հզոր գործիք վերլուծական հարցումների և տվյալների մանրամասն վերլուծության համար։