您好,匿名用户
随意问技术百科期待您的加入

求MYSQL中对相邻两行的操作的方法

0 投票

现在表中分段记录了一些信息

如 user_id begin end duration type
begin end是起始和截止时间
duration=end-begin 有个最大限制;所以造成了记录上的分段.
type: 有first,middle, last.代表是分段的次序.中间可能有多个middle.

eg:

| bceedabcecdgdcf | 2011-03-02 09:49:57 | 2011-03-02 10:04:57 |900 | first |
| bceedabcecdgdcf | 2011-03-02 10:04:57 | 2011-03-02 10:19:57 |900 | middle |
| bceedabcecdgdcf | 2011-03-02 10:19:57 | 2011-03-02 10:22:03 |126 | last  |

现在相把连续的多行合并成一条记录.如何操作?
如上述变成

| bceedabcecdgdcf | 2011-03-02 09:49:57 | 2011-03-02 10:22:03 |1926| single|
用户头像 提问 2012年 12月1日 @ Pikachu 上等兵 (475 威望)
分享到:

1个回答

0 投票

可以使用groupby合并多条记录,SQL如下:
select user_id, min(begin) as begin, max(end) as end, end-begin as duration from table group by user_id;

用户头像 回复 2012年 12月1日 @ hacker 上等兵 (362 威望)
提一个问题:

相关问题

0 投票
1 回复 41 阅读
用户头像 提问 2012年 12月1日 @ Draven 上等兵 (325 威望)
+1 投票
1 回复 39 阅读
用户头像 提问 2012年 12月1日 @ Janna 下士 (667 威望)
0 投票
1 回复 41 阅读
用户头像 提问 2012年 12月1日 @ Olaf 上等兵 (366 威望)
0 投票
1 回复 29 阅读
用户头像 提问 2013年 11月30日 @ Amumu 上等兵 (340 威望)
+1 投票
1 回复 122 阅读
用户头像 提问 2012年 12月1日 @ Taurus 上等兵 (303 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...