Middle — Senior
Come calcolare la mediana in SQL senza funzione incorporata? Come contare il numero di righe in una tabella? Conosci le funzioni di finestra?
sobes.tech AI
Risposta dell'AI
Mediana in SQL senza funzione incorporata può essere calcolata utilizzando funzioni di finestra o sottoquery. Ad esempio, per una tabella con una colonna numerica 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);
Qui:
ROW_NUMBER()numerizza le righe in ordine crescente di valore.COUNT(*) OVER ()conta il numero totale di righe.- Si prendono i valori medi dei due elementi centrali (per quantità pari) o uno centrale (per quantità dispari).
Contare il numero di righe nella tabella è molto semplice:
SELECT COUNT(*) FROM your_table;
Funzioni di finestra sono funzioni che eseguono calcoli su un insieme di righe correlate alla riga corrente, senza ridurre il risultato a una sola riga (a differenza delle funzioni aggregate). Sono utili per classifiche, somme mobili, mediane, ecc.
Esempio di funzione di finestra:
SELECT value, ROW_NUMBER() OVER (ORDER BY value) AS rn FROM your_table;
Numererà le righe in ordine crescente di value.