我有下表。
在满足条件时可以创建窗口函数First_Value
吗?
例如,当is = 1时我需要第一个值,并按ID进行分区
TableA
ID Date IS
1 1/1/18 0
1 1/2/18 1
我的工作:
SELECT
CASE
WHEN A.IS = 1 THEN A.DATE END)OVER (PARTITION BY A.ID ORDER BY A.DATE)
END FIRST_ATTEMPT_DT
FROM TABLEA A
答案 0 :(得分:1)
改为使用min()
:
select min(case when a.is = 1 then a.date end) over (partition by a.id)
答案 1 :(得分:0)
您可以按以下方式使用:
SELECT
(CASE
WHEN A."is" = 1 THEN
First_Value("Date") OVER (PARTITION BY A.ID ORDER BY A."Date")
ELSE
A."Date"
END) as FIRST_ATTEMPT_DT
FROM TABLEA A
WHERE "is" = 1;
IS 和 DATE 在Oracle中是保留的关键字,因此应加引号。
P.S。看来您想查看 First_Values 的结果,并且我为“ is” = 1
的情况进行了匹配