首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将两行转置为单行(mySql)

将两行转置为单行(mySql)
EN

Stack Overflow用户
提问于 2016-09-27 16:02:38
回答 3查看 160关注 0票数 1

在MySql中,我有这样的表(数据):

我想要做的是在单行(按日期分组)中获取日期、传感器(1)的温度、传感器(2)的温度。

现在我有传感器1和传感器2的同一dtg的两个记录...

谢谢

EN

回答 3

Stack Overflow用户

发布于 2016-09-27 16:05:47

使用GROUP_CONCAT

代码语言:javascript
运行
复制
SELECT dtg, GROUP_CONCAT(temperature ORDER BY sensor_id)
FROM yourTable
GROUP BY dtg

演示:

SQLFiddle

票数 2
EN

Stack Overflow用户

发布于 2016-09-27 16:24:12

您可以使用self join

代码语言:javascript
运行
复制
SELECT 
    a.dtg AS dtg1,
    a.sensor_id AS sensor_id1,
    a.temperature AS temperature1,
    b.sensor_id AS sensor_id2,
    b.temperature AS temperature2
FROM yourTable AS a
LEFT JOIN yourTable AS b 
    ON a.dtg = b.dtg
    AND NOT a.sensor_id = b.sensor_id
GROUP BY a.dtg
票数 1
EN

Stack Overflow用户

发布于 2016-09-27 16:52:07

在查询中对这些值进行硬编码并不理想,但这是将行转置为列的变通方法:

代码语言:javascript
运行
复制
SELECT dtg,
    COALESCE(IF(sensor_id='28-000004a9fa09', temperature, NULL)) t1, 
    COALESCE(IF(sensor_id='28-000004aa21cd', temperature, NULL)) t2
FROM readings
GROUP BY dtg

如果开始获得不可预测的时间读数,您可能需要使用聚合。特别是考虑到DB18B20s有时可能需要一段时间才能读取,您可能会得到重叠的秒数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39719294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档