[英]SQL - How to use SUM and MAX in same query?
我正在使用MySQL數據庫版本5.0.41(和PHP 5.2.6,盡管可能與該問題無關)。
我有一個名為votes
的表,其中包含以下字段: id
, item_id
, vote_value
。 每次用戶在網站上對某項商品投贊成票時,都會使用相應的item_id
和正數(即1)創建一個新行。 當投票否定時,將創建一個具有相應item_id
和一個負數(即-1)的行。 我想通過一個查詢(如果可能)選擇投票最多的item_id。 為此,我首先需要對每個單獨的item_id
所有票求和(以得到38或-14這樣的數字),然后選擇該數字的最大值。 我不確定如何為此編寫查詢。
你能幫忙嗎?
謝謝!
SELECT item_id, SUM(vote_value) AS sum
FROM votes
GROUP BY item_id
ORDER BY sum DESC
LIMIT 1
您可以執行以下操作:
SELECT item_id, SUM(vote_value) AS total, COUNT(id) AS c
FROM votes
GROUP BY item_id
ORDER BY total DESC, c DESC
LIMIT 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.