Middle — Senior
¿Cómo calcular la mediana en SQL sin una función incorporada? ¿Cómo contar el número de filas en una tabla? ¿Conoces las funciones de ventana?
sobes.tech AI
Respuesta de la IA
La mediana en SQL sin función incorporada se puede calcular utilizando funciones de ventana o subconsultas. Por ejemplo, para una tabla con una columna numérica 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);
Aquí:
ROW_NUMBER()numera las filas en orden ascendente por valor.COUNT(*) OVER ()cuenta el número total de filas.- Se toman los valores medios de los dos elementos centrales (para cantidades pares) o uno central (para cantidades impares).
Contar el número de filas en la tabla es muy simple:
SELECT COUNT(*) FROM your_table;
Funciones de ventana son funciones que realizan cálculos sobre un conjunto de filas relacionadas con la fila actual, sin reducir el resultado a una sola fila (a diferencia de las funciones agregadas). Son útiles para clasificación, cálculo de sumas móviles, medianas, etc.
Ejemplo de función de ventana:
SELECT value, ROW_NUMBER() OVER (ORDER BY value) AS rn FROM your_table;
Esta numerará las filas en orden ascendente por value.