Как создать два столбца из одного столбца в SQL на основе аргумента IF в другом столбце - PullRequest
0 голосов
/ 28 марта 2020

У меня есть таблица, которая имеет 3 столбца. Ценность, состояние и день. Я хотел бы выбрать два столбца из столбца Значение. Один, который является средним значением t.value, сгруппированным по t.condition 1, и другой, который является средним значением t.value, сгруппированным по t.condition 2. Затем я хотел бы сгруппировать их по дням и условиям.

Table

Результат должен выглядеть следующим образом.

expected result

Я пробовал case когда, if и CTE. Однако все они провалились. Оператор if работает для выполнения одного условия, но, видя, что это двоичное условие, функция if, которую я пробовал, не работает Я рассмотрел создание двух таблиц и затем присоединение в день. Это будет работать, я бы предположил. Был бы более легкий способ сделать это?

Спасибо!

1 Ответ

1 голос
/ 28 марта 2020

Вы можете использовать условное агрегирование:

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;
...