天天看點

oracle查詢某列的最大值,擷取SQL Server中某列的最大值的行

我發現了一個和這個問題非常相似的問題,但是使用的功能似乎是Oracle獨有的。我希望在SQL Server中執行此操作。

我有一張這樣的桌子:

MyTable

--------------------

MyTableID INT PK

UserID INT

Counter INT

每個使用者可以有多行,具有不同的

Counter

在每一行。我需要找到最高的一行

計數器

每個使用者的值。

如何在SQL Server 2005中執行此操作?

我能想到的最好的方法是查詢傳回

MAX(Counter)

對于每一個

UserID

但我需要整行,因為為了簡單起見,表定義中沒有顯示此表中的其他資料。

編輯:

這篇文章中的一些答案引起了我的注意,我忘記了一個重要的細節。可以有2+行,其中一個使用者ID可以有相同的最大計數器值。下面的例子更新了預期的資料/輸出應該是什麼。

有了這些資料:

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 Server選擇它們的順序選擇第一個結果。在這種情況下,傳回哪些行并不重要,隻要使用者ID/計數器對是不同的:

MyTableID UserID Counter

--------- ------- --------

2 1 7

4 11 9

6 4 6