Mysql Group按集群结果及时完成

时间:2013-02-27 02:24:35

标签: mysql sql

我在带有随机条目的mysql表中有一个DATETIME字段。我想选择对象组,并在有四个小时的间隙时将它们分开。理想情况下,我可以返回数组(或子组?)中每个组内的所有ID。

这似乎超出了我的SQL技能。

任何有趣的解决方案?

2 个答案:

答案 0 :(得分:1)

SQL意味着对数据执行集合操作,而您要求的则涉及顺序处理。

所以,我建议按顺序处理它,而不是试图扭曲SQL来尝试这样做。我相信你有两个基本选择:

  1. 使用游标处理结果,从存储过程中的表中选择数据。

  2. 从您选择的外部独立语言(Java,C#,Python,PHP ......无论您的船上浮动)执行select语句,并在那里对数据进行适当分组。

    < / LI>

答案 1 :(得分:1)

您可以使用MySQL DATE_FORMAT子句。

示例

SELECT CAST(DATE_FORMAT(date,'%Y-%m-%d %k:00:00') AS DATETIME) hour
  FROM table
 WHERE date = CURRENT_DATE - INTERVAL 4 HOUR
  GROUP BY CAST(DATE_FORMAT(date,'%Y-%m-%d %k:00:00') AS DATETIME)