我发现一个与此类似的问题,但使用了Oracle似乎专有的功能。我期待在SQL Server中执行此操作。获取具有SQL Server中列最大值的行
我有一个表是这样的:
MyTable
--------------------
MyTableID INT PK
UserID INT
Counter INT
每个用户可以具有多个行,具有用于每行中Counter
不同的值。我需要为每个用户查找具有最高值Counter
的行。
如何在SQL Server 2005中执行此操作?
我可以拿出最好的查询返回MAX(Counter)
为每个UserID
,但我需要整行,因为这个表中的其他数据没有显示在我的表定义为简单起见。
编辑:它已经从我在这篇文章的一些答案中注意到,我忘记了一个重要的细节。用户ID可以具有相同的MAX计数器值的情况下可以有2+行。下面的示例更新了预期的数据/输出应该是什么。
有了这些数据:
MyTableID UserID Counter
--------- ------- --------
1 1 4
2 1 7
3 4 3
4 11 9
5 11 3
6 4 6
...
9 11 9
我希望这些结果重复MAX值,选择以任何顺序SQL服务器选择他们第一次出现。返回的行是在这种情况下并不重要,只要用户名/计数器对是不同的:
MyTableID UserID Counter
--------- ------- --------
2 1 7
4 11 9
6 4 6
@marc_s:串行downvoter - 你是我见过的第三个,包括我自己。 – 2010-01-19 22:20:23
@OMGPonies:是的,我想......我明白这是一篇自以为是的评论,或者当你在帖子中有一个明显的错误...... anyhoo ..... – 2010-01-19 22:21:13
@marc_s:+1:Every现在,然后它发生在SQL问题。 – 2010-01-19 22:25:23