0
我已經繼承了以下查詢,該查詢獲得指定「嘗試」(橄欖球術語觸地得分)的平均評分。希望我們仍然可以使用它。評分查詢 - 指定ID超過全部評分的評分的評分百分比
SELECT i.id, i.title,
(
CASE
WHEN
COUNT(r.rating) > 0
THEN
(
SUM(r.rating)/COUNT(r.rating)
)
ELSE
0
END
) AS rating,
COALESCE(er.id, 0) AS has_existing_rating
FROM
(
SELECT 1 AS id, 'Try 1 – Israel Dagg v Chiefs.' as title UNION ALL
SELECT 2 AS id, 'Try 2 – Israel Dagg v Chiefs.' as title UNION ALL
SELECT 3 AS id, 'Try 3 – Leilia Masaga v Crusaders.' as title UNION ALL
SELECT 4 AS id, 'Try 4 – Israel Dagg v Chiefs.' as title UNION ALL
SELECT 5 AS id, 'Try 5 – Fred Flintstone v Hurricanes.' as title UNION ALL
SELECT 6 AS id, 'Try 6 – Israel Dagg v Chiefs.' as title UNION ALL
SELECT 7 AS id, 'Try 7 – Israel Dagg v Chiefs.' as title
) AS i
LEFT OUTER JOIN
tryPoll r
ON
i.id = r.try_id
<!--
Join this to the rating table AGAIN to see if the current
user has already rated the given try.
-->
LEFT OUTER JOIN
tryPoll er
ON
(
er.try_id = i.id
AND
er.ip_address = '#cgi.remote_addr#'
AND
er.user_agent = '#cgi.http_user_agent#'
)
GROUP BY
i.id,
r.try_id,
er.id,
i.title
ORDER BY
i.id ASC
因此,如下表(等級= 1只意味着一票在這種情況下)....
tryPoll
id try_id rating ip_address user_agent
------------------------------------------------------
1 2 1 58.28.220.51 Mozilla/5.0 blah
2 2 1 58.28.220.52 Mozilla/5.0 blah
3 6 1 58.28.220.53 Mozilla/5.0 blah
4 4 1 58.28.220.54 Mozilla/5.0 blah
...查詢將返回try_id#2的平均評分爲(1 + 1)/ 2 = 1
但是,我需要調整此查詢以返回特定TRY的評分百分比,而不是所有嘗試的評分。即在上面的例子中,確定所有嘗試的所有評級的百分比歸因於try_id#2
我該如何實現?
,如果有更多的樣本數據(即如果'rating'是爲了能夠有不同的值,請出示一些),並預期這將有助於結果。 –