私はそのようなテーブルを持っています:
name value1 value2 value3
---------------------------
name1 1 1 1
name2 1 1 2
name3 2 2 11
name4 2 12 2
name5 3 3 8
name6 3 3 2
私が必要としているのはそのような結果です:
name value1 value2 value3
---------------------------
name2 1 1 2
name4 2 12 2
name5 3 3 8
すなわち:
value1
;のグループごとに正確に1つのエンティティ。value2
このエントリは、このグループのvalue1
;の最大値を持っている必要があります。- このエントリの最大値は
value3
、のグループ内である必要がありvalue2
ます。
インターネットで検索した後、SELECT
リスト内のスカラーサブクエリを単一の列として使用することで解決策が得られましたが、各列に対して同じサブクエリを実行する必要があるため、非常に醜くvalue1
複雑value2
ですvalue3
。
SQL Cookbookは、タイプをオブジェクトとして定義することによるレシピ14.10の解決策について言及していますが、私は単一のSELECTステートメントの解決策を好みます。
簡単な方法はありますか?