0
でグループを含む参加してselect文で集計機能、私は次の属性を持つ2つのテーブルがあります。SQL:句
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
であり、最初に発生したもの(date
に基づく)はt1
です。
次のクエリは私に必要な結果与えている:私は(唯一の彼らの最初の出現のために)すべてのドメイン間での日付の差の平均値を計算したい場合は今、この部分は中にエラーが発生します
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
、与えられたソースで複数の同じドメインに対して、私は平均日差を計算するときに、それだけでソースの最も古いドメインの日付を考慮する必要があります。
おかげで、それが働きました。 2番目のクエリでは、サブクエリも提案しますか? – SaadH
@Saadh。 。 。あなたは本当にそれぞれの質問で1つの質問をするだけです。私は構成が 'avg(datediff(t1.date、t2.date)')だと思います。 –