2011-11-22 134 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