gpt4 book ai didi

mysql - 查看特定用户是否每天登录

转载 作者:行者123 更新时间:2023-11-29 01:35:24 25 4
gpt4 key购买 nike

如何在 MySQL 中使用 SQL 查找特定用户是否每天登录?

我有一张这样的 table 。

+----------+---------------------+---------+
| login_id | login_date | user_id |
+----------+---------------------+---------+
| 8494 | 2016-03-01 00:00:00 | 20703 |
| 22403 | 2016-03-01 00:00:00 | 53473 |
| 23965 | 2016-03-01 00:00:00 | 79722 |
| 30173 | 2016-03-01 00:00:00 | 36396 |
| 34928 | 2016-03-02 00:00:00 | 20703 |
| 38740 | 2016-03-02 00:00:00 | 15758 |
| 42769 | 2016-03-02 00:00:00 | 79722 |
| 44364 | 2016-03-02 00:00:00 | 79722 |
| 45440 | 2016-03-03 00:00:00 | 20703 |
| 49050 | 2016-03-03 00:00:00 | 36396 |
| 50273 | 2016-03-03 00:00:00 | 79722 |
| 50344 | 2016-03-04 00:00:00 | 20703 |
| 51360 | 2016-03-04 00:00:00 | 20703 |
| 54404 | 2016-03-04 00:00:00 | 53473 |
| 61533 | 2016-03-04 00:00:00 | 79722 |
| 72852 | 2016-03-05 00:00:00 | 20703 |
| 74546 | 2016-03-05 00:00:00 | 38289 |
| 76487 | 2016-03-05 00:00:00 | 62529 |
| 82439 | 2016-03-05 00:00:00 | 36396 |
| 90006 | 2016-03-05 00:00:00 | 36396 |
| 90404 | 2016-03-06 00:00:00 | 20703 |
+----------+---------------------+---------+

答案会是这样的

user_id, consecutive
20703, 'YES'
53473, 'NO'

2016-03-01 - 2016-03-06 每天有 20703 人登录,但 53473 人只登录两次。范围将从整个表格的开始到结束。

最佳答案

好吧,你可以这样做:

select user_id,
( count(distinct login_date) = cnt_ld ) as everyday_flag
from t cross join
(select count(distinct login_date) as cnt_ld
from t
) tt
group by user_id, tt.cnt_ld;

请注意,这会将用户与表中的所有天数进行比较。如果某一天没有登录,而您仍想包括那一天,则使用最大值减去最小值进行比较。

这也返回一个“ bool ”标志(实际上是 0 或 1)。您可以使用 case 将其转换为 'YES'/'NO',但我发现该数字更易于使用。

关于mysql - 查看特定用户是否每天登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49824945/

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