gpt4 book ai didi

mysql - 聚合列上的奇异条件

转载 作者:行者123 更新时间:2023-11-28 23:20:26 24 4
gpt4 key购买 nike

有点难以定义我想要达到的目标,但在这里尝试一下。我正在研究 redshift 并在以下示例 Table A 之上编写查询:

User ID ||  Active_in_Month  || Max_Months_On_Platform
1 1 6
1 2 6
1 5 6
2 1 3
2 3 3

按“Active_in_Month”分组后,我想在 Table B 中获得以下输出:

Active_in_Month  ||   Active_Distinct_Users   ||   User_Cohorts
1 2 2
2 1 2
3 1 2
5 1 1

“Active_Distinct_Users”是一个简单的 COUNT(*)。但是,“User_Cohorts”的计算是我卡住的地方。该列应该表示平台上有多少用户在“active_in_month”comlumn 中的值最多处于事件状态。例如,在 表 B 的第 1 行中,有两个用户的“Max_Months_on_Platform” > 1(活跃月份)。在表 B 的第 5 行中,只有 1 个“User_Cohort”,因为只有 1 个用户的“Max Months on Platform” > 5 (Active_in_Month)。

希望这能解释我想要表达的意思。

最佳答案

解决方案

使用以下方法解决了它,不确定它是否是最好的方法,但它完成了工作:

SELECT
Active_in_Month,
COUNT(DISTINCT user_id),
( SELECT
SUM(number_of_customers)
FROM (SELECT
tbl_a2.Max_Months_On_Platform AS total,
COUNT(DISTINCT tbl_a2.user_id) AS number_of_customers
FROM
tbl_a AS tbl_a2
GROUP BY tbl_a2.Max_Months_On_Platform
)
WHERE total + 1 >= tbl_a.Active_in_Month
) AS total_customers

FROM
tbl_a

关于mysql - 聚合列上的奇异条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41915188/

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