Middle
Kam paredzētas logs funkcijas SQL?
sobes.tech AI
Atbilde no AI
Logu funkcijas SQL veic datu agregāciju rindkopā, kas ir saistīta ar pašreizējo rindu, bet tajā pašā laikā nesagrupē rezultātu kopu. Tas ļauj veikt aprēķinus, piemēram, kumulatīvās summas, slīdošos vidējos vai reitingus, saglabājot visus sākotnējā vaicājuma rindas datus:
Galvenie logu funkciju mērķi:
- Reitingēšana: katrai rindai piešķirt reitingu noteiktā logā:
-- Saņemt darbinieku reitingu pēc algas katrā nodaļā
SELECT
employee_name,
salary,
department,
RANK() OVER (PARTITION BY department ORDER BY salary DESC) as department_rank
FROM
employees;
- Statistikas aprēķins bez grupēšanas: datu agregācija "logā", saglabājot rindu detalizāciju:
-- Aprēķināt vidējo algu visā nodaļā katrai rindai
SELECT
employee_name,
salary,
department,
AVG(salary) OVER (PARTITION BY department) as avg_department_salary
FROM
employees;
- Salīdzinājums ar pašreizējo rindu ar citām rindām logā: piekļuve datiem no iepriekšējām vai nākamajām rindām logā:
-- Saņemt iepriekšējā darbinieka algu pēc samazināšanas secības nodaļā
SELECT
employee_name,
salary,
department,
LAG(salary, 1, 0) OVER (PARTITION BY department ORDER BY salary DESC) as previous_salary
FROM
employees;
- Kumulatīvie aprēķini: summas, vidējie un citi agregāti pieaugošā secībā:
-- Aprēķināt kumulatīvo pārdošanas summu pēc datuma
SELECT
sale_date,
amount,
SUM(amount) OVER (ORDER BY sale_date) as cumulative_sales
FROM
sales;
Atšķirībā no parastajām agregācijas funkcijām (GROUP BY), logu funkcijas nesaspiež rindas, padarot tās par jaudīgu rīku analītiskajiem vaicājumiem un datu detalizētai analīzei.