SQLで、「グループ毎」に「ある列の値」が「一番大きい行」だけ取り出す方法
使用頻度が結構多いのですが、どうしてこの書き方で結果が求められるのか、未だに理解できないSQLです。
書き方をすぐ忘れてしまうので、書き留めておきます。
◆サンプル
複数のホテルの、部屋番号毎の料金が登録されているテーブルがあります。
ホテル毎に、一番高い料金の部屋番号とその料金を抽出します。
SELECT [ホテル名], [部屋番号], [料金] FROM 部屋テーブル WHERE ([料金] >= ALL ( SELECT [料金] FROM 部屋テーブル AS t WHERE (部屋テーブル.[ホテル名] = t.[ホテル名])))