1

この質問にわかりやすいタイトルをつけるのは難しかったです。例を挙げて説明しようと思います。

最初に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

そのようなクエリはどのように見えるべきですか?

4

2 に答える 2