我有这张table:
+-----------+-----------+---------------------+
| id | member_id | date |
+-----------+-----------+---------------------+
| 1 | 2 | 2020-07-27 21:53:46 |
| 2 | 1 | 2020-07-27 22:03:58 |
| 3 | 1 | 2020-07-27 22:09:16 |
| 4 | 1 | 2020-07-27 22:11:33 |
| 5 | 2 | 2020-07-27 22:12:21 |
-----------------------------------------------
我想 GROUP BY
像这样:
+-----------+-----------+---------------------+
| id | member_id | date |
+-----------+-----------+---------------------+
| 1 | 2 | 2020-07-27 21:53:46 |
| 2 | 1 | 2020-07-27 22:03:58 |
| 5 | 2 | 2020-07-27 22:12:21 |
-----------------------------------------------
但当我把 GROUP BY member_id
它只返回我两行(1,2)
1条答案
按热度按时间goucqfw61#
我认为这是一个间隙和孤岛问题,您需要在其中显示
member_id
与“上一行”不同。下面是一种使用窗口函数的方法(在mysql 8.0中提供):
lag()
给出member_id
在前一行中,我们可以将其与当前行中的值进行比较:db fiddlde上的演示: