Mysql查询:按日期分组,将多行合并成一行

Mysql查询:按日期分组,将多行合并成一行,mysql,datetime,mariadb,pivot,Mysql,Datetime,Mariadb,Pivot,我从8个不同的传感器收集温度和湿度。不幸的是,我设计的表是错误的,我使用一行为每个传感器测量 id sensor date temperature 100576 8 12/25/2020 18:29 38 100575 1 12/25/2020 18:29 17.2 100574 2 12/25/2020 18:29

我从8个不同的传感器收集温度和湿度。不幸的是,我设计的表是错误的,我使用一行为每个传感器测量

    id          sensor         date            temperature
100576           8  12/25/2020 18:29          38
100575           1  12/25/2020 18:29         17.2
100574           2  12/25/2020 18:29          5.8
100573           3  12/25/2020 18:29         -9.2
100572           7  12/25/2020 18:29         14.9
100571           6  12/25/2020 18:29         16.6
100570           5  12/25/2020 18:29         -8.9
100569           4  12/25/2020 18:29         19.8
100568           8  12/25/2020 18:28          39
100567           1  12/25/2020 18:28         17.2
100566           2  12/25/2020 18:28          5.8
100565           3  12/25/2020 18:28         -9.2
100564           7  12/25/2020 18:28          15
100563           6  12/25/2020 18:28         16.6
100562           5  12/25/2020 18:28         -8.8
100561           4  12/25/2020 18:28         19.8
我想编写一个mysql查询,将所有传感器按日期分组在一行中

  date             sensor1    sensor2    sensor3    sensor4    sensor5    sensor6    sensor7    sensor8
12/25/202018:28      17.2       5.8        -9.2       19.8       -8.9       16.6       14.9        39
12/25/202018:29      17.2       5.8        -9.2       19.8       -8.8       16.6        15         39
有没有一个简单的方法可以做到这一点?
谢谢大家!

要透视数据集以便显示,请使用条件聚合:

select date,
    max(case when sensor = 1 then temperature end) as sensor1,
    max(case when sensor = 2 then temperature end) as sensor2,
    ...
from mytable
group by date

注意:您的设计是存储数据的正确方式;每个传感器值都存储在一个单独的行中,应该是这样的。

Wow。工作起来很有魅力。。。我感谢你的回答和帮助!!考虑在应用程序代码中处理数据显示的问题,并使用该数据的正确数据类型存储数据。