我有一个表,其中包含一些字段(时间,文本,类型)。我想构建一个查询,以针对每种类型返回以最大时间值引入的文本。 Oracle有一些限制,没有一些技巧就很难构建查询。
我正在努力获得正确的查询,有人可以帮助我吗?
TIME TEXT TYPE
--------------------------
03.05.2020 AA 2
02.04.2020 BB 2
01.04.2020 CC 1
我想返回一个查询
03.05.2020 AA 2
01.04.2020 CC 1
首先是获取每个max(TIME)
的type
,然后将其加入您的tableA
以获取其他字段(TEXT)
。
select * from tableA t
inner join
(select max(TIME) mt, type from tableA group by type) t1 on t1.mt=t.mt and t.type= t1.type
您可以使用row_number(或density_rank):
select
t.*
from (
select
t.*,
row_number() over(partition by type_column order by time_column desc) rn
from tbl t
) t
where t.rn = 1