
Originally Posted by
brandonBuster
Is there a way to avoid having to ...
i don't think this will buy you that many extra milliseconds, but here ya go, only minimal aggregate calls ...
Code:
SELECT business_id
, category_id
, ( sum_r1 + sum_r2 + sum_r3 + sum_r4 + sum_r5 ) /
rows AS total_avg
, 100.0 * sum_r5 /
( sum_r1 + sum_r2 + sum_r3 + sum_r4 + sum_r5 ) AS top_score_avg
FROM ( SELECT business_id
, category_id
, SUM(r1) AS sum_r1
, SUM(r2) AS sum_r2
, SUM(r3) AS sum_r3
, SUM(r4) AS sum_r4
, SUM(r5) AS sum_r5
, COUNT(*) AS rows
FROM results
GROUP
BY business_id
, category_id ) AS temp
Bookmarks