Cómo crear dos columnas de una columna en SQL basada en un argumento si en otra columna

Cem Yilmaz:

Tengo una tabla que tiene 3 columnas. Valor, condición y día. Me gustaría seleccionar dos columnas de valor de columna. Uno que es el valor promedio de t.value agrupados por t.condition 1 y otro que es un valor medio de t.value agrupados por t.condition 2. lo haría entonces como al grupo a todos ellos por día y condición.

Mesa

El resultado debe ser similar a esta tabla.

Resultado Esperado

He intentado caso cuando, siempre y CTE. Sin embargo, todos fracasaron. El trabajo para el cumplimiento de sentencia si una condición pero al ver que la condición es binaria, la función if he intentado no ha funcionado. He considerado la creación de dos mesas y luego unirse en día. Eso funcionaría yo supongo. ¿Habría una manera más fácil de hacer esto?

¡Gracias!

Gordon Linoff:

Puede utilizar la agregación condicional:

select day,
       max(case when condition = 1 then value end) as value_1,
       max(case when condition = 2 then value end) as value_2
from t
group by day;

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=387916&siteId=1
Recomendado
Clasificación