この質問にわかりやすいタイトルをつけるのは難しかったです。例を挙げて説明しようと思います。
最初にINFO
、Oracle DB に単純なテーブルがありました。
year type message
---- ---- -------
2001 1 cakes are yammy
2003 2 apples are dangerous
2012 2 bananas are suspicious
2005 3 cats are tricky
そして、特定の種類の最新のメッセージを選択する必要があります (たとえばtype = 1
、 またはtype = 2
):
2001 1 cakes are yammy
2012 2 bananas are suspicious
だから私はクエリを使用しました:
select * from INFO i
where year = (select max(year) from INFO i_last where i.type = i_last.type)
and i.type in (1, 2)
しかし、ここで、新しい「四半期」列を INFO テーブルに追加する必要があります。そして、年と四半期ごとに最新のレコードを選択します。
year quarter type message
---- ------- ---- -------
2001 2 1 cakes are yammy
2012 3 2 onions are cruel
2012 1 2 bananas are suspicious
2005 1 3 cats are tricky
タイプ 1 または 2 の最新のレコードは次のとおりです。
2001 2 1 cakes are yammy
2012 3 2 onions are cruel
そのようなクエリはどのように見えるべきですか?