簡體   English   中英

使用MySQL在另一列中為每個唯一值從一列中找到最大值

[英]Find the highest value from a column for each unique value in another column with MySQL

我正在嘗試編寫一個MySQL查詢(來自PHP),該查詢將為組列中的每個唯一值找到最新(最高ID號)分數。

我嘗試了max()和GROUP BY的幾種不同組合,但無法正常工作。

這是我的桌子的一個例子:

ID | my_group | score

1 | red | good
2 | blue | bad
3 | red | bad
4 | blue | good
5 | red | good
6 | yellow | bad
7 | blue | good
8 | blue | bad
9 | yellow | good
10 | blue | bad

因此,我希望從上表返回的內容是:

ID | my_group | score

10 | blue | bad
9 | yellow | good
5 | red | good
select m.ID, m.my_group, m.score 
from (
    select my_group, max(ID) as MaxID
    from MyTable
    group by my_group
) mm
inner join MyTable m on mm.my_group = m.my_group
    and mm.MaxID = m.ID

不能說這一定能奏效,但是這種簡單的技術在我完成的有限測試中起作用了。 基本上,我只是按ID對表進行反向排序,然后選擇並分組。

SELECT ID, my_group, score 
FROM (
    SELECT * FROM my_table ORDER BY ID DESC
) AS table
GROUP BY my_group

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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