我的问题是我不能像查询一样使用这两个聚合函数:AVG(MIN(首先我需要从该实体termResultCurrent获取最小值,然后是所有最小值的平均值。可能它必须更改group by并包含一些其他子句才能获取最小值(我不知道是否可能)。否则,它可能正在使用子查询但我的组有问题...我知道它非常具有挑战性,但我非常感谢你的帮助。
SELECT AVG(MIN(termResultCurrent.position)), count(*)
FROM TermSubscription subscription,
Competitor competitor,
TermQuery termQueryPrev, IN(termQueryPrev.results) termResultPrev,
TermQuery termQueryCurrent,IN(termQueryCurrent.results) termResultCurrent
WHERE subscription.account.id= 274
and competitor.id = 379
AND termQueryPrev.term=subscription.term
AND termQueryCurrent.term=subscription.term
AND termQueryCurrent.provider.id= 1
AND termQueryCurrent.provider.id=termQueryPrev.provider.id
AND termQueryPrev.queryDate.yearWeek = YEARWEEK(FROM_DAYS(TO_DAYS('2013-01-01') - 7), 1)
AND termQueryCurrent.queryDate.yearWeek = YEARWEEK('2013-01-01',1)
AND termResultPrev.url.hostname MEMBER competitor.domains
AND termResultCurrent.url.hostname MEMBER competitor.domains
group by subscription.term.id
答案 0 :(得分:-1)
使用此:
select avg(s.minimum) from
(SELECT MIN(termResultCurrent.position) minimum
FROM TermSubscription subscription, ...
WHERE subscription.account.id= 274 and ...
group by subscription.term.id
) s;