【发布时间】:2019-02-07 18:10:26
【问题描述】:
我有两张桌子。进入第一个表(活动)有:user_id、sessions和login_time。在第二个(付款)中只有一列 - user_id。
我需要计算“付款”用户在 01/01/2018-01/05/2018 期间进行了多少次会话。
activity
user_id sessions login_time
1 6 01.01.2018
2 2 01.01.2018
1 1 02.01.2018
4 3 02.01.2018
1 2 03.05.2018
3 04.02.2018
表格
payments
user_id
1
3
4
我的代码(计算错误):
select login_time, avg(activity.sessions) AS
average_sessions
from activity inner join
payments
on payments.user_id = activity.user_id
where activity.login_time between '2018-01-01' and '2018-05-01'
group by activity.login_time;
感谢您的帮助!
输出:
output
login_time average_sessions
01.01.2018 6
02.01.2018 2
03.01.2018 0
04.01.2018 0
...
【问题讨论】:
-
也给出你预期的输出!没有预期的输出,问题有点不清楚
-
@Madhur Bhaiya,我更新了
-
您是否要计算每个用户的平均会话数?
-
@Madhur Bhaiya,是的。第二个表中的每个用户
-
将
avg(activity.sessions)替换为SUM(activity.sessions)/COUNT(DISTINCT activity.user_id)
标签: mysql sql database join select