• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:グループ毎の条件抽出)

グループ毎の条件抽出の効率的な方法

このQ&Aのポイント
  • 識別毎に状況の最大値を求めるグループを作成し、状況が最大値のデータのみ抽出します。
  • 2つ目のグループでは、1つ目のグループの中で日付が最大値のデータのみ抽出します。
  • 識別が無いデータは各行で出力し、最後に識別が無いデータを取得します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

分析関数の使える環境であれば、比較的簡単に書けます。 select NO,識別,状況,日付 from (select TableA.*,row_number() over(partition by 識別 order by 状況 desc,日付 desc) R from TableA where 識別 is not null) where R=1 union all select NO,識別,状況,日付 from TableA where 識別 is null ; 分析関数の書けないバージョン/エディションの場合でも、 実現不可能なわけではありません。 (長くなるので省略したました)

room-i
質問者

お礼

私の期待通りの結果を得られる事ができました。 非常に勉強になりました。有難う御座います!

関連するQ&A