我已经实现了Quassnoi的答案,并且itr工作,但如果我复杂一点查询结构,我不会得到所需的结果
我会试着解释一下:
想象一下,向表中添加一些字段,其中每一行代表一个时间间隔
| ------------- | -------- | ------------ | ---------- | - -------- |点击
| node_id | id |一天| ifrom | ito |
| 2610 | 1643 | 2013-01-23 | 08:00:00 | 10:00:00 |
| 2610 | 1644 | 2013-01-23 | 10:00:00 | 12:30:00 |
| 2610 | 1645 | 2013-01-24 | 08:00:00 | 12:30:00 |
| 2610 | 1646 | 2013-01-24 | 13:30:00 | 15:00:00 |
| 2611 | 1647 | 2013-01-28 | 08:00:00 | 09:30:00 |
| 2611 | 1648 | 2013-01-29 | 11:00:00 | 12:00:00 |
我需要获得每组的最小开始和最大结束;类似的东西如下
| ------------- | --------------------- | ------------- -------- |点击
| node_id |开始|结束|
| 2610 | 2013-01-23 08:00:00 | 2013-01-24 15:00:00 |
| 2611 | 2013-01-28 08:00:00 | 2013-01-29 09:30:00 |
有没有办法获得它?我尝试了这个查询,但最终失败了
SELECT node_id, MIN( UNIX_TIMESTAMP( CONCAT(
DAY , ' ', ifrom ) ) ) AS ifrom, MAX( UNIX_TIMESTAMP( CONCAT(
DAY , ' ', ito ) ) ) AS ito
FROM table
GROUP BY node_id
ORDER BY ifrom它工作,但我需要直接在查询中获取日期+时间的文本表示,我尝试了
SELECT node_id, MIN( UNIX_TIMESTAMP( CONCAT(
DAY , ' ', ifrom ) ) ) AS ifrom, MAX( UNIX_TIMESTAMP( CONCAT(
DAY , ' ', ito ) ) ) AS ito, FROM_UNIXTIME( MIN( UNIX_TIMESTAMP( CONCAT(
DAY , ' ', ifrom ) ) ) , '%d-%m-%Y %H:%i' ) AS itxtfrom, FROM_UNIXTIME( MIN( UNIX_TIMESTAMP( CONCAT(
DAY , ' ', ito ) ) ) , '%d-%m-%Y %H:%i' ) AS itxtto
FROM table
GROUP BY node_id
ORDER BY ifrom
但在这种情况下,它无法获得间隔的结束
有人有想法吗?
问候