很难为这个问题想出一个可以理解的标题。我将尝试用一个例子来解释。
首先,我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
or 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
这样的查询应该是什么样子?