1
我有需要通过COLB groupbed戕COLC值的特定平均可乐的计数的查询。例如转换子查询,以一个单一的查询蜂房
SELECT COUNT(X.colA), X.colB , X.MEASURE
FROM (
SELECT colA , colB , avg(colC) MEASURE
FROM tableA
GROUP BY colA, colB
HAVING round(avg(colC),2) > 0
) X
GROUP BY X.MEASURE , X.colB
HAVING X.MEASURE BETWEEN 0 AND 3000
ORDER BY MEASURE
实施例的结果可能是
No of User, URL , average time spent
90182 , abc.com, 334
293556 , def.com, 33
与上述查询问题是,由于它有一个子查询中的内部子查询洗牌一个庞大的数据量作为中间结果以外部查询其导致查询在大型数据集上变得非常慢。
有没有一种方法可以将上面的查询转换为没有子查询的查询,或者是否有任何UDAF可用,所以没有更多的中间数据的主要洗牌,它在单一阶段运行?