You are on page 1of 3

MEDIDAS PARES E IMPARES GOOGLE

Brian David PeraltA Arriaga

Actividad
Problema:

Escriba una consulta para calcular la suma de las mediciones pares e impares por separado
para un día en particular y muestre los resultados en dos columnas diferentes.

Consulte el resultado de ejemplo a continuación para conocer el formato deseado.

Definición:Dentro de un día, las mediciones tomadas la 1.ª, 3.ª y 5.ª vez se consideran
mediciones con números impares, y las mediciones tomadas la 2.ª, 4.ª y 6.ª veces se
consideran mediciones con números pares.A partir del 1de abril de 2023, se revisaron la
pregunta y la solución para esta pregunta.

Solución:

SELECT

fecha AS día_medición,

SUM(CASE WHEN row_num % 2 = 1 THEN valor_medición ELSE 0 END) AS suma_impar,

SUM(CASE WHEN row_num % 2 = 0 THEN valor_medición ELSE 0 END) AS suma_pareja

FROM (

SELECT

fecha,

valor_medición,

ROW_NUMBER() OVER (PARTITION BY fecha ORDER BY tiempo_medición) AS row_num

FROM measurements

) subquery

GROUP BY fecha

ORDER BY fecha;
SELECT fecha AS día_medición: Esta línea selecciona la columna fecha de la tabla y la renombra
como día_medición. La columna renombrada será la que muestre las fechas en el resultado.

SUM(CASE WHEN row_num % 2 = 1 THEN valor_medición ELSE 0 END) AS suma_impar: Esta


línea calcula la suma de las mediciones impares. La función SUM agrega los valores de la
columna valor_medición cuando la condición row_num % 2 = 1 es verdadera. row_num es el
número de fila asignado a cada medición dentro de cada día (calculado en la subconsulta). Si
el número de fila es impar, se suma el valor de la medición; de lo contrario, se suma 0. El
resultado se muestra en la columna suma_impar.

SUM(CASE WHEN row_num % 2 = 0 THEN valor_medición ELSE 0 END) AS suma_pareja: Esta


línea calcula la suma de las mediciones pares de manera similar a la línea anterior, pero en
este caso, se suman los valores de valor_medición cuando la condición row_num % 2 = 0 es
verdadera. El resultado se muestra en la columna suma_pareja.

FROM ( ... ) subquery: Esto define una subconsulta que es utilizada para calcular el número de
fila (row_num) para cada medición. La subconsulta selecciona las columnas fecha,
valor_medición, y utiliza la función ROW_NUMBER() para asignar un número de fila dentro de
cada día, particionado por fecha y ordenado por tiempo_medición. Esto es importante para
determinar qué mediciones son pares e impares.

GROUP BY fecha: Esto agrupa los resultados por la columna fecha. La consulta calculará las
sumas por separado para cada día.

ORDER BY fecha: Esto ordena los resultados por la columna fecha en orden ascendente, de
manera que las fechas se presenten en orden cronológico en el resultado final.

You might also like