gpt4 book ai didi

MYSQL 计数行直到最后一个不同的行

转载 作者:太空宇宙 更新时间:2023-11-03 11:50:43 25 4
gpt4 key购买 nike

我有一个表单中的事件表:

|  User  |     Event         |   Date  |
| User A | Failed Log In | ... |
| User A | Failed Log In | ... |
| User B | Failed Log In | |
| User A | Successful Log In | |
| User B | Successful Log In | |

我想做的是计算每个用户自上次“成功登录”以来 的所有“失败登录”,以便我可以创建以下形式的 View :

|  User  | Failed Log in attempts |
| User A | 2 |
| User B | 1 |

这可以用 SQL 实现吗?或者我是否需要将此逻辑提取到我的应用程序中?

最佳答案

SQL 表表示无序 集,因此除非列指定顺序,否则没有“最后”或“之前”。因此,这个答案假定某种包含该信息的 eventdatetime 列,尽管自动递增的 id 也同样有效(甚至可能更好)。

我认为这可以满足您的需求:

select e.user, count(*) as NumFailedAttempts
from events e
where e.event = 'Failed Log In' and
e.eventdatetime > (select max(e2.eventdatetime)
from events e2
where e2.user = e.user and e2.event = 'Successful Log In'
);

如果你想包括零(没有失败登录的那些),那么你可以将其左连接到用户表。

关于MYSQL 计数行直到最后一个不同的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35670647/

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