Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何计算某段时间内每天一个表中所有唯一id之和与另一个表中所有唯一id之和的百分比?_Mysql_Sql_Database_Join_Select - Fatal编程技术网

Mysql 如何计算某段时间内每天一个表中所有唯一id之和与另一个表中所有唯一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

您能帮我写一个查询,计算某段时间内每天一个表中所有唯一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         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错误)是子查询生成的表的表别名。。。