一千萬個為什麽

搜索

MySQL查詢以獲得與第二列的最大值配對的列

這適用於MySQL,但可能存在更普遍適用的SQL語句。不過,我真的不需要這個便攜式。

我有一張這樣的桌子:

| id | site | used | date |
| 1  | A    | 180  | 9/15 |
| 2  | A    | 110  | 9/14 |
| 3  | A    | 90   | 9/13 |
| 4  | B    | 200  | 9/15 |
| 5  | B    | 220  | 9/14 |
| 6  | B    | 270  | 9/13 |
| 7  | C    | 910  | 9/14 |
| 8  | C    | 930  | 9/13 |

描述:每天捕獲數據,但Site C的最後捕獲日是9/14。

如何獲得為每個站點捕獲單行的結果集,該站點的日期可能具有maxmim值?

結果將是:

| id | site | used | date |
| 1  | A    | 180  | 9/15 |
| 4  | B    | 200  | 9/15 |
| 7  | C    | 910  | 9/14 |

最佳答案

select t.*
from (
    select site, max(date) as MaxDate
    from MyTable
    group by site
) tm
inner join MyTable t on tm.site = t.site and tm.MaxDate = t.Date

但是,如果有多個具有相同日期的站點記錄,您將獲得重復的行。

轉載註明原文: MySQL查詢以獲得與第二列的最大值配對的列