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), функсияҳои тиреза хатҳоро ҷамъ намекунанд, ки онҳоро ба воситаи қувватнок барои саволҳои таҳлилӣ ва таҳлили муфассалтар аз маълумотҳо табдил медиҳад.