6
每组检索n行
我经常需要从结果集中的每个组中选择一些行。 例如,我可能想列出每个客户的'n'个最高或最低最近订单值。 在更复杂的情况下,每个组要列出的行数可能有所不同(由分组/父记录的属性定义)。这部分绝对是可选的/为了获得额外的荣誉,并不旨在阻止人们回答。 解决SQL Server 2005及更高版本中此类问题的主要选项是什么?每种方法的主要优点和缺点是什么? AdventureWorks示例(为清楚起见,可选) TransactionHistory对于每个以M到R(含)开头的字母的产品,从表中列出五个最近的交易日期和ID 。 再次相同,但是n每个产品都有历史记录行,其中n是DaysToManufacture产品属性的五倍。 相同,在特殊情况下,每个产品只需要一个历史记录行(单个最近的条目,由TransactionDate,打破平局)TransactionID。