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;
Генералдуу топтоо функцияларынан айырмаланып, терезе функциялары саптарды кысуусуз калтырып, аналитикалык суроолор жана деталдуу маалыматтарды талдоо үчүн күчтүү инструмент болуп саналат.