mysql - Union在mysql中与group by一起使用时不起作用?怎么了?

标签 mysql sql database

我写了一个查询,例如

(select meterID, timestamp from meter_data 
          where timestamp between 1369282639 AND 1369282699 
                AND deviceID = "1" 
                        GROUP BY meterID) 
UNION 

(select meterID, timestamp from meter_data 
          where timestamp between 1369282739 AND 1369282799 
                AND deviceID = "1" 
                         GROUP BY meterID);

我期望从中得到 2 组数据,例如 - 我的表中有 4 个不同的meterID,因此它应该返回 8 条记录,但它只返回 4 条记录

最佳答案

为了帮助理解数据,您可以尝试以下操作

SELECT a.meterID, MAX(b.timestamp), MAX(c.timestamp)
FROM meter_data a
LEFT OUTER JOIN meter_data b ON a.meterID = b.meterID AND b.timestamp between 1369282639 AND 1369282699 AND b.deviceID = "1" 
LEFT OUTER JOIN meter_data c ON a.meterID = c.meterID AND c.timestamp between 1369282739 AND 1369282799 AND c.deviceID = "1" 
GROUP BY a.meterID

这应该返回每个仪表 ID 一行以及该仪表 ID 每个范围内的最大时间戳。

关于mysql - Union在mysql中与group by一起使用时不起作用?怎么了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17145434/

相关文章:

php - 通过大量的经纬度搜索和排序

php - 无法在 CakePHP 中编辑关于 hasOne 关系的其他表信息

php - PHP 中的 !is_numeric 函数不接受 NULL VALUE

sql - 在 PL/SQL 中使用带有 "LIKE %"(例如 "variable%")的变量?

PHP/SQL - 递归地减少有关大量和最大配额的 SQL 值

java - 如何优化缓慢的 Mysql SELECT 查询?

java - 为每个数据库表都有一个单独的 DAO 实现类是一个好方法吗?

javascript - 如何将数据从 HTML 表单获取到 JavaScript 文件并添加 MySQL?

mysql - 如何在 SQLAlchemy 的 `charset` 中使用 `encoding` 和 `create_engine`(创建 Pandas 数据框)?

php - 德鲁帕尔 : module update