[英]SQL SELECT row with highest value where problem_id is the same
我正在一個項目中,我必須列出每個問題的最高票數的解決方案。
每個問題都有兩個解決方案,用戶可以為每個問題投票一個解決方案。 這是我目前的數據庫。
+----------+------------+---------+
| id | id_problem | vote |
+----------+------------+---------+
| 1 | 1 | 25 |
| 2 | 1 | 10 |
| 3 | 2 | 18 |
| 4 | 2 | 2 |
| 5 | 3 | 6 |
| 6 | 3 | 7 |
| 7 | 4 | 11 |
| 8 | 4 | 4 |
| 9 | 5 | 5 |
| 10 | 5 | 2 |
+----------+------------+---------+
我想得到這個結果:(每個id_problem
投票最高的行)
+----------+------------+---------+
| id | id_problem | vote |
+----------+------------+---------+
| 1 | 1 | 25 |
| 3 | 2 | 18 |
| 6 | 3 | 7 |
| 7 | 4 | 11 |
| 9 | 5 | 5 |
+----------+------------+---------+
您可以使用具有max
聚合功能的group by
子句來獲得預期的結果,例如:
select id, id_problem, max(vote) as vote
from result
group by id_problem
order by id_problem
這是SQL Fiddle 。
SELECT
id,
id_problem,
max(vote)
from
tablename
group by
id_problem
order by
id_problem ASC
max(vote)決定更大的投票數,但是它匯總結果,然后您需要按id_problem分組,然后按升序排序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.