簡體   English   中英

具有最高值的SQL SELECT行,其中problem_id相同

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM