2011-11-22 140 views
3

比方說,我有以下幾列的表...SQL:如何選擇每天每個組的最大值?

Name, Date, Number 

,說我們已經插入到這些列中的以下數據...

Bob, 2011-11-22, 1 
Bob, 2011-11-22, 5 
Bob, 2011-11-22, 4 
Bob, 2011-11-22, 3 
Wendy, 2011-11-22, 3 
Wendy, 2011-11-22, 4 
Wendy, 2011-11-22, 2 
Wendy, 2011-11-22, 1 
Chris, 2011-11-22, 4 
Chris, 2011-11-22, 1 
Bob, 2011-11-21, 4 
Bob, 2011-11-21, 3 
Wendy, 2011-11-21, 2 
Wendy, 2011-11-21, 4 
Wendy, 2011-11-21, 1 
Chris, 2011-11-21, 4 
Chris, 2011-11-21, 1 

現在想什麼,我要做的是獲得每個名稱的最大數值,爲每個日期。所以我的查詢結果看起來像這樣...

Bob, 2011-11-22, 5 
Wendy, 2011-11-22, 4 
Chris, 2011-11-22, 4 
Bob, 2011-11-21, 4 
Wendy, 2011-11-21, 4 
Chris, 2011-11-21, 4 

任何幫助,將不勝感激。我使用的是SQL 2005

+0

是的我正在處理的實際查詢有更多的連接和列,但我想有點愚蠢的問題的核心問題。迄今爲止的答案確實幫助我更接近我真正想做的事情。感謝大家! – mike

+0

您可以添加更多的最終操作或查詢的細節來幫助未來的搜索嗎?這可能有助於人們在未來知道簡單解決方案在特定情況下無法使用的原因。 –

回答

4
SELECT Name, `Date`, MAX(Number) 
FROM yourtable 
GROUP BY Name, `Date` 
5
SELECT Name, Date, MAX(Number) 
    FROM YourTable 
    GROUP BY Name, Date; 
6

這不像你想象的那麼難。

select name, date, max(number) from table group by name, date