Я пытаюсь написать команду SQL, которая группирует строки из следующей таблицы.
+------------+---------+----------+
| DATE | RED | BLUE |
+------------+---------+----------+
| 2018-01-01 | YES | null |
| 2018-06-11 | YES | null |
| 2018-06-11 | null | YES |
+------------+---------+----------+
Результат, который я пытаюсь достичь, заключается в следующем:
+------------+---------+----------+
| DATE | RED | BLUE |
+------------+---------+----------+
| 2018-01-01 | YES | null |
| 2018-06-11 | YES | YES |
+------------+---------+----------+
НО, я не могу получить команду объединить/сгруппировать две строки с той же датой и перезаписать существующие значения NULL во время группировки.
Есть идеи? Кстати, я использую MySQL.
использовать group by
уже сказанную в комментариях
select DATE,max(RED) as RED,max(BLUE) as BLUE from t1
group by DATE
https://www.db-fiddle.com/f/e7gxBPx5pyAPELqh516Hpn/1
DATE RED BLUE
2018-01-01 YES null
2018-06-11 YES YES
По вашему требованию, я думаю, вы можете попробовать следующее:
select A.Xdate,max(Red) as C2 ,max(Blue) as C3 from test A
group by A.XDate;
GROUP BY
.