Middle — Senior
Ako vypočítať medián v SQL bez vstavaných funkcií? Ako spočítať počet riadkov v tabuľke? Poznáte okienkové funkcie?
sobes.tech AI
Odpoveď od AI
Medián v SQL bez vstavljene funkcije sa pomocou okienkových funkcií alebo poddotazov. Napríklad, pre tabuľku s číselným stĺpcom value:
SELECT AVG(value) AS median FROM (
SELECT value, ROW_NUMBER() OVER (ORDER BY value) AS rn, COUNT(*) OVER () AS cnt
FROM your_table
) sub
WHERE rn IN ((cnt + 1) / 2, (cnt + 2) / 2);
Tu:
ROW_NUMBER()čísluje riadky vzostupne podľa hodnoty.COUNT(*) OVER ()počíta celkový počet riadkov.- Vypočíta sa priemerná hodnota dvoch stredných prvkov (pre párny počet) alebo jedného stredného (pre nepárny počet).
Počet riadkov v tabuľke je veľmi jednoduchý:
SELECT COUNT(*) FROM your_table;
Okienkové funkcie sú funkcie, ktoré vykonávajú výpočty nad množinou súvisiacich riadkov s aktuálnym riadkom, bez zníženia výsledku na jeden riadok (na rozdiel od agregačných funkcií). Sú užitočné pre radenie, pohyblivé súčty, mediány atď.
Príklad okienkovej funkcie:
SELECT value, ROW_NUMBER() OVER (ORDER BY value) AS rn FROM your_table;
Táto numeruje riadky vzostupne podľa value.