我经常需要从结果集中的每个组中选择一些行。
例如,我可能想列出每个客户最近的“n”个最高或最低订单值。
在更复杂的情况下,要列出的行数可能因组而异(由分组/父记录的属性定义)。这部分绝对是可选的/为了额外的学分,而不是为了劝阻人们回答。
在 SQL Server 2005 及更高版本中解决这些类型问题的主要选项是什么?每种方法的主要优点和缺点是什么?
AdventureWorks 示例(为清晰起见,可选)
TransactionHistory,每个产品以从 M 到 R 的字母开头。n每个产品都有历史记录行,其中n是DaysToManufactureProduct 属性的五倍。TransactionDate, .tie-break on TransactionID.SentryOne Plan Explorer是否像宣传的那样工作,是否合法?有什么问题或需要担心的事情吗?
与 SSMS 对估计执行计划视图的噩梦相比,它似乎以颜色显示了热路径。
我担心的是 - 它是否恶意或以其他方式修改任何数据?
编辑:我刚刚听说过它,以前从未听说过这家公司。
performance sql-server optimization execution-plan query-performance