【发布时间】:2017-10-08 20:05:33
【问题描述】:
我有两个具有以下属性的表:
t1 t2
source domain date rank domain date
--- --- --- --- --- ---
A google 2008-10-24 1 google 2007-10-20
A facebook 2010-05-17 1 google 2009-02-21
B google 2007-05-14 2 facebook 2008-04-13
B google 2012-01-05 2 facebook 2012-09-12
B facebook 2014-03-23 2 facebook 2015-04-01
我试图找出日期差异 b/w 每个 domain 在t2 中的第一次(最早)出现与它们在t1 中的第一次出现(基于date)。
以下查询给了我所需的结果:
select t2.domain, datediff(min(t1.date),min(t2.date))
from t1 join t2
on t1.domain = t2.domain
group by t2.domain
现在,如果我想计算所有域的平均日期差异(仅针对它们的第一次出现),这部分会在 select 语句中给出错误(查询的其余部分与上面相同):select avg(datediff(min(t1.date),min(t2.date))) ...
知道如何在此处纠正错误(无效使用组功能)吗?
另外,我想通过source 计算平均日期差异组。这样输出应该是这样的:
source avg_datediff
--- ---
A some_value
B some_value
就像上面一样,对于给定来源中的多个相同域,在计算平均日期差异时,我只需要考虑该来源的最早域的日期。
【问题讨论】:
标签: mysql sql join group-by aggregate-functions