gpt4 book ai didi

mysql - SQL 查询显示结果 Year to month per month

转载 作者:行者123 更新时间:2023-11-29 05:18:07 26 4
gpt4 key购买 nike

我有一个数据库,其中包含我的用户完成的每个操作,并带有时间戳,如下所示:
用户名 ; Action ; 创建日期

我想评估一段时间内活跃用户的数量。我可以看到每周活跃的用户数 (count (distinct user_id)),但我想知道从年初到每周活跃的用户数,如下所示:

-第1周活跃用户数
- 第 1 周或第 2 周的活跃用户数
-第 1 周、第 2 周或第 3 周的活跃用户数
等等

我不能每周都添加活跃用户,因为他们回来了,所以如果我做了一些就会被加倍。

现在我可以每周用这个查询做一次:

SELECT count(distinct uca.user_id)
FROM DATABASE
WHERE (extract(week from uca.creation_date)) <= 9

我怎样才能有一个查询每周都给我这个?

(抱歉,这太长了,我意识到我想更清楚一点)

谢谢!

最佳答案

您可以使用子查询。您的示例查询有点困惑(表别名 uca 未定义,您只提取周而不是年)。我想你想要这样的东西:

SELECT year(uca.creation_date), week(uca.creation_date),
count(distinct uca.user_id) as WEEK_users,
(select count(distinct uca2.user_id)
from database uca2
where year(uca2.creation_date) = year(uca.creation_date) and
week(uca2.creation_date) <= week(uca.creation_date)
) as YTD_users
FROM DATABASE uca
GROUP BY year(uca.creation_date), week(uca.creation_date)

关于mysql - SQL 查询显示结果 Year to month per month,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29845405/

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