Mysql 如何计算某段时间内每天一个表中所有唯一id之和与另一个表中所有唯一id之和的百分比?
您能帮我写一个查询,计算某段时间内每天一个表中所有唯一id之和占另一个表中所有唯一id之和的百分比吗 我有两个表(a和p),彼此有两列(用户id和日期)。第二张桌子比较短Mysql 如何计算某段时间内每天一个表中所有唯一id之和与另一个表中所有唯一id之和的百分比?,mysql,sql,database,join,select,Mysql,Sql,Database,Join,Select,您能帮我写一个查询,计算某段时间内每天一个表中所有唯一id之和占另一个表中所有唯一id之和的百分比吗 我有两个表(a和p),彼此有两列(用户id和日期)。第二张桌子比较短 Table a user_id date 1 01.01.2018 2 01.01.2018 3 02.01.2018 1 03.01.2018 2 04.01.2018 表2 user_id date 1 0
Table a
user_id date
1 01.01.2018
2 01.01.2018
3 02.01.2018
1 03.01.2018
2 04.01.2018
表2
user_id date
1 01.01.2018
3 02.01.2018
2 04.01.2018
预期视图(例如,2018年1月1日至2018年1月4日之间:
date percent
01.01.2018 50%
02.01.2018 100%
03.01.2018 0%
04.01.2018 100%
谢谢您的帮助!您的问题描述不太清楚,但在我看来,您似乎尝试了以下内容。请使用join和aggregate函数
select a.date, count(distinct p.user_id) / count(distinct
p.user_id)*100 as percent from a
left join p on a.user_id = p.user_id
where a.date between '2018-01-01' and '2018-01-04'
group by a.date
你可以按计数加入这个小组
select t.date, ifnull(b.date,0)100/t.count(*)
from (
select date, count(*)
from table_a
group by date
) t
left join table b on b.date = a.date
您需要多少百分比的总和???。如何计算结果???。解释better@scaisEdge,2018年1月1日,两个用户中有一个。2018年1月2日,一个用户中有一个是50%。2018年1月3日,一个用户中有一个是100%。另一个表中没有用户。这是0。我已经发布了第一个答案,希望是你要找的。用户id不应该出现吗在您的预期视图中-或者如果表2中也出现了日期为2018年1月1日的2,您的预期视图会是什么样子?@P.Salmon.No.在expexted视图中,每个日期(数字和日期)应该只有2位数好的,谢谢。但是我应该如何设置一个时间段呢?那么你需要知道clauseI在哪里使用了你的变量,但我认为它计算错误。我应该更改什么?选择a.date,count(distinct p.user\u id)/count(distinct p.user\u id)*从a.user_id=p.user_id的左侧加入p的100%,其中a.date在'2018-01-01'和'2018-01-04'之间,由a.date;@Бааааааааааааааааааааааа。(子查询后的a错误)是子查询生成的表的表别名。。。