6
グループごとにn行を取得する
結果セットの各グループから多くの行を選択する必要がよくあります。 たとえば、顧客ごとに最近の注文値の最高または最低を「n」個リストしたい場合があります。 より複雑な場合、リストする行の数はグループごとに異なる場合があります(グループ化/親レコードの属性によって定義されます)。この部分は間違いなくオプション/追加のクレジットのためであり、人々が答えることを思いとどまらせることを意図していません。 SQL Server 2005以降でこれらのタイプの問題を解決するための主なオプションは何ですか?各方法の主な長所と短所は何ですか? AdventureWorksの例(わかりやすくするため、オプション) TransactionHistoryMからRまでの文字で始まる製品ごとに、テーブルから最新の5つのトランザクション日付とIDをリストします。 繰り返しますが、n製品ごとに履歴行がnあり、DaysToManufacture製品属性の5倍です。 同様に、製品ごとに正確に1行の履歴行が必要な特別な場合(TransactionDate、タイブレークでの最新の単一エントリ)TransactionID。