Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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如何找到具有不同创建日期的不同客户端的平均/天_Mysql - Fatal编程技术网

MySQL如何找到具有不同创建日期的不同客户端的平均/天

MySQL如何找到具有不同创建日期的不同客户端的平均/天,mysql,Mysql,我尝试了以下查询,但不幸的是它们不起作用:(。 值得一提的是,每个客户都有多个CustomerUsers select (a.TotalJobs / b.DaysActive) from (select count(jr.id) as TotalJobs from jobrequests jr, customers c, customerusers cu where jr.customeruserid=cu.id and cu.customerid=c.id group by c.name) a

我尝试了以下查询,但不幸的是它们不起作用:(。 值得一提的是,每个客户都有多个CustomerUsers

select (a.TotalJobs / b.DaysActive) from
(select count(jr.id) as TotalJobs
from jobrequests jr, customers c, customerusers cu
where jr.customeruserid=cu.id
and cu.customerid=c.id
group by c.name) as a,
(select datediff(curdate(), from_unixtime(c.CreationTime)) as DaysActive
from customers c
group by c.name)  as b
请看下面的表格

Jobs: +----+--------------+ | ID | JobRequestID | +----+--------------+ | 1 | 1 | | 2 | 1 | | 3 | 1 | | 4 | 1 | | 5 | 1 | | 6 | 2 | | 7 | 2 | | 8 | 3 | | 9 | 3 | | 10 | 3 | | 11 | 4 | | 12 | 4 | | 13 | 5 | | 14 | 5 | | 15 | 6 | | 16 | 7 | | 17 | 8 | | 18 | 8 | | 19 | 9 | | 20 | 10 | +----+--------------+ JobRequests: +----+---------------+ | ID | CustomeUserID | +----+---------------+ | 1 | 1 | | 2 | 1 | | 3 | 2 | | 4 | 2 | | 5 | 2 | | 6 | 3 | | 7 | 4 | | 8 | 4 | | 9 | 4 | | 10 | 5 | | 11 | 5 | | 12 | 5 | | 13 | 6 | | 14 | 6 | | 15 | 7 | +----+---------------+ CustomerUsers: +----+------------+ | ID | CustomerID | +----+------------+ | 1 | 1 | | 2 | 1 | | 3 | 1 | | 4 | 2 | | 5 | 2 | | 6 | 2 | | 7 | 2 | | 8 | 3 | | 9 | 3 | | 10 | 4 | +----+------------+ Customers: +----+------+--------------+ | ID | Name | CreationTime | +----+------+--------------+ | 1 | a | 1415814194 | | 2 | b | 1415814194 | | 3 | c | 1415986994 | | 4 | d | 1415986994 | +----+------+--------------+ 工作: +----+--------------+ |ID |作业请求ID| +----+--------------+ | 1 | 1 | | 2 | 1 | | 3 | 1 | | 4 | 1 | | 5 | 1 | | 6 | 2 | | 7 | 2 | | 8 | 3 | | 9 | 3 | | 10 | 3 | | 11 | 4 | | 12 | 4 | | 13 | 5 | | 14 | 5 | | 15 | 6 | | 16 | 7 | | 17 | 8 | | 18 | 8 | | 19 | 9 | | 20 | 10 | +----+--------------+ 职位申请: +----+---------------+ |ID |客户服务ID| +----+---------------+ | 1 | 1 | | 2 | 1 | | 3 | 2 | | 4 | 2 | | 5 | 2 | | 6 | 3 | | 7 | 4 | | 8 | 4 | | 9 | 4 | | 10 | 5 | | 11 | 5 | | 12 | 5 | | 13 | 6 | | 14 | 6 | | 15 | 7 | +----+---------------+ 客户: +----+------------+ |ID |客户ID| +----+------------+ | 1 | 1 | | 2 | 1 | | 3 | 1 | | 4 | 2 | | 5 | 2 | | 6 | 2 | | 7 | 2 | | 8 | 3 | | 9 | 3 | | 10 | 4 | +----+------------+ 客户: +----+------+--------------+ |ID |名称|创建时间| +----+------+--------------+ |1 | a | 1415814194| |2 | b | 1415814194| |3 | c | 1415986994| |4 | d | 1415986994| +----+------+--------------+ 目前,它返回16个结果(4X4),将第一个子查询中的每个结果除以第二个子查询中的每个结果(每个子查询返回4个结果)。是否有人能帮助我将此结果从子查询1中仅除以一个结果,再除以子查询2的共同响应


提前谢谢。

我猜您需要将您的结果结合在一起--

尝试这样的操作,将
c.id
添加到每个子查询中(最好按它分组,而不是按名称分组):


请注意,我已更新了您的语法,以使用更标准的
join
语法。

我怀疑您可以按照您的要求执行以下查询:

select c.name, count(*) / (datediff(curdate(), from_unixtime(c.CreationTime))
from customerusers cu join
     jobrequests jr
     on jr.customeruserid = cu.id join
     customers c 
     on cu.customerid = c.id
group by c.name;

我不明白你为什么需要两个子查询来完成这个任务。

你能描述一下你想要完成什么吗?+1,我不想花那么多脑力,但我完全同意,这是一个更好的解决方案。。。
select c.name, count(*) / (datediff(curdate(), from_unixtime(c.CreationTime))
from customerusers cu join
     jobrequests jr
     on jr.customeruserid = cu.id join
     customers c 
     on cu.customerid = c.id
group by c.name;