mysql获取分组的第一个_Mysql获得分组的第一个和最后一个记录

我已经实现了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

但在这种情况下,它无法获得间隔的结束

有人有想法吗?

问候

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值