gpt4 book ai didi

sql - 使用 SQL 计算 12 个月的重复用户

转载 作者:行者123 更新时间:2023-12-02 00:23:52 28 4
gpt4 key购买 nike

我正在尝试看看是否有更好的方法来实现我现在正在做的事情。例如,我需要知道过去 12 个月登录的用户总数。因此,每个月至少登录一次、连续十二个月登录的用户都将计入总数。

我现在这样做的方式是:我查询我的表并获取所有用户 ID 和他们处于事件状态时的时间戳,并将它们返回到我的 C# 代码。然后用一堆循环和 LINQ 我计算值(它的代码太多无法转储到这个问题中,因为我试图避免在 c# 中做它,我认为没有必要这样做)。

现在这需要一些时间来运行,我确信必须有更好的方法来使用 SQL 来执行此操作。我进行了搜索,但没有找到任何可让您根据重复出现的条件进行计数的 SQL 函数。

对于一个答案,我希望得到一个例子或指向类似 SO 问题的链接,或者一篇讨论如何实现这一点的文章。

MyUsersTable 示例:

UserId | Timestamp
1 | '2018-12-23 00:00:00.000'
1 | '2018-11-23 00:00:00.000'
1 | '2018-10-23 00:00:00.000'

编辑:我确实考虑过使用 SUM(CASE WHEN month = 1 and month = 2 and month = 3) 但这似乎也不是一个很好的解决方案。

预期结果:

在过去 12 个月内每月至少活跃一次的用户总数。

最佳答案

如果需要2018年每个月登录的用户:

select ut.userid
from MyUsersTable ut
where timestamp >= '2018-01-01' and timestamp < '2019-01-01'
group by ut.userid
having count(distinct month(timestamp)) = 12;

关于sql - 使用 SQL 计算 12 个月的重复用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54466510/

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