我是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