Mysql查询:按日期分组,将多行合并成一行
我从8个不同的传感器收集温度和湿度。不幸的是,我设计的表是错误的,我使用一行为每个传感器测量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
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。工作起来很有魅力。。。我感谢你的回答和帮助!!考虑在应用程序代码中处理数据显示的问题,并使用该数据的正确数据类型存储数据。