我有一个包含一些字段(时间、文本、类型)的表格。我想构建一个查询来为每种类型返回引入时间最大值的文本。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
一种选择是使用DENSE_RANK, FIRST and LAST Analytic Functions
作为
MAX(time) KEEP (DENSE_RANK LAST ORDER BY time ) OVER( PARTITION BY type )
WITH t2 AS
(
SELECT t.*, MAX(time) KEEP (DENSE_RANK LAST ORDER BY time ) OVER( PARTITION BY type )
AS highest
FROM t
)
SELECT time, text, type
FROM t2
WHERE highest = time
通过此方法列出所有关系(time
每个type
组的重复值)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句