我是SELECT
一組記錄,但一列在兩個或多個結果中產生不同的值。我只想SELECT
的最高價值;而不是Min
之一或Max
的值,但是SQL Server 2008遇到的Top N
值。是否有任何聚合機制會執行此操作?如何從數據庫中的表中選擇一組行的最高記錄?
例如,
表有:
Microsoft MSFT 12/21/05
我執行:
Microsoft MSFT 10/22/05
Microsoft MSFT 11/23/06
Paramount PMNT 02/21/05
Paramount PMNT 01/23/06
選擇 [名],[符號],PriceDate
FROM AAA
GROUP BY [名],[符號]
期望的結果是:
Microsoft MSFT 12/21/05
Paramount PMNT 02/21/05
(TOP
失敗)
「TOP」的支持是毫無意義的一個ORDER BY。 – RBarryYoung 2009-06-19 20:07:49
SQL Server不以任何特定順序存儲行(當然,Clustered Indexes可以!),並且完全可以在SQL Server的突發奇想中進行更改。事實上,您似乎確實需要Min(PriceDate)函數,但在問題中明確否定它。否則,你給自己無意義的結果。 – Eric 2009-06-19 21:36:12