分组/合并行并保存不为空的数据

时间:2018-07-26 22:52:46

标签: mysql sql database

我正在尝试编写一个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。

2 个答案:

答案 0 :(得分:1)

根据您的要求,我想您可以尝试以下操作:

  select A.Xdate,max(Red) as C2 ,max(Blue) as C3  from test A  
  group by A.XDate;  

答案 1 :(得分:1)

使用评论中已经说过的for(int i = 0; i < 10; i++) { for(int j = 0; j < 10; j++) { } }

for(int i ,j= 0; i < 10; (j>9) ? (i++,j=0) : 0 ,j++)
{
    printf("%d %d\n",i,j);
}

https://www.db-fiddle.com/f/e7gxBPx5pyAPELqh516Hpn/1

group by