我需要根据条件返回最新可用的行。 由于Hive不支持PL-T/SQL,因此我需要使用函数。
当前代码仅选择最新记录,没有考虑ACTIVE_F
。
WITH CTE AS
(select
ID,
myuser_insert_time as insert_time,
max(myuser_insert_time) OVER (PARTITION BY ID ORDER BY ID) as rn
from tbl1)
SELECT * FROM CTE
WHERE rn = insert_time
我的数据:
MYUSER_INSERT_TIME ACTIVE_F
2019-06-14 15:00:32.000 6
2019-03-06 15:54:22.000 0
2019-01-25 08:43:45.000 1
2018-12-13 09:49:50.000 0
2018-11-24 10:11:06.000 0
2018-11-06 12:17:34.000 1
2018-07-04 16:59:15.000 0
2018-05-29 12:22:15.000 1
2018-05-24 20:19:00.000 2
2018-05-24 20:19:00.000 2
期望的行为:
查找最新记录(已完成)
检查ACTIVE_F(当为6时-移动到下一行并返回该行,否则继续到下一行)
所需结果:
MYUSER_INSERT_TIME ACTIVE_F
2019-03-06 15:54:22.000 0
6
,因为它可能是某些情况下唯一的记录。 - marcin2x4MYUSER_INSERT_TIME
。 - marcin2x4