此问题已被提问和回答多次,但我的情况有点不同。SQL ORDER BY GROUP BY
说我有这样的数据:
------------------------------
| id | date |
------------------------------
| 1 | 2016-07-15 |
| 1 | 2016-07-16 |
| 2 | 2016-07-24 |
| 2 | 2016-07-25 |
| 1 | 2016-07-29 |
| 1 | 2016-07-30 |
------------------------------
我想先顺序由date
列,然后组由id
列,并采取max(date)
每个id
。
这样id=1
出现两次,我会得到这个
------------------------------
| id | max(date) |
------------------------------
| 1 | 2016-07-16 |
| 2 | 2016-07-25 |
| 1 | 2016-07-30 |
------------------------------
通知,因为的id=1
造成2个独立的“组”,在它们之间的一组id=2
顺序。
我的意思是我希望group by
函数只将order by
子句中相邻值相邻的行组合在一起。
我该怎么做?
什么是最大的时间差使得两者的差异使得放入单个组中的日期? – 1000111
@ 1000111没有“差异限制”。问题是,我只想将'order by'子句中相邻的相同'id'的行组合在一起。 – Malki
您的表中没有任何主键吗? – 1000111