WITH sequenced_data AS( SELECt *, ROW_NUMBER() OVER (PARTITION BY ECode ORDER BY TotalNrShare) AS sequence_id FROM myView)SELECt *FROM sequenced_dataWHERe sequence_id = 1
但是,这应提供与示例查询相同的结果。这只是完成同一件事的另一种方法。
但是,当您说出问题时,请您详细说明出什么问题了吗?是
TotalNrShare真正的字符串,例如?这会搞乱您的订购 _(等等
MAX())_吗?
编辑:
即使以上代码与您的SQL Server不兼容,也不应将其完全崩溃。您应该只会收到一条错误消息。尝试执行
Select * ByMagic,例如,它应该给出一个错误。我强烈建议您查看和/或重新安装Management Studio。
在替代方案方面,您可以执行此 *** 作…
SELECT *FROM (SELECt ECode FROM MyView GROUP BY ECode) AS baseCROSS APPLY (SELECt TOP 1 * FROM MyView WHERe ECode = base.ECode ORDER BY TotalNrShare DESC) AS data
理想情况下,您可以
base用一个表替换子查询,该表已经具有您感兴趣的所有ECode的独特列表。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)