gpt4 book ai didi

mysql - 如何在条件不同的行中按相同的值分组? (MYSQL)

转载 作者:行者123 更新时间:2023-12-04 09:19:11 26 4
gpt4 key购买 nike

我有这张 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)

最佳答案

我理解这是一个间隙和孤岛问题,您希望在其中显示 member_id 的行与“上一个”行不同。
这是使用窗口函数的方法(在 MySQL 8.0 中可用):lag()给出 member_id在前一行,然后我们可以将其与当前行上的值进行比较:

select id, member_id, date
from (
select t.*, lag(member_id) over(order by date) lag_member_id
from mytable t
) t
where not lag_member_id <=> member_id
order by date
Demo on DB Fiddlde :
身份证 | member_id |日期
-: | --------: | :------------------
1 | 2 | 2020-07-27 21:53:46
2 | 1 | 2020-07-27 22:03:58
5 | 2 | 2020-07-27 22:12:21

关于mysql - 如何在条件不同的行中按相同的值分组? (MYSQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63123438/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com