任何人都可以在我的案例陈述中使用Over
和Partition
帮助
我正在尝试Y
显示Stvs.visitorID
而没有stse.SessionID
。
我的第一行工作正常,但无法让第二行工作。
сase
when stse.datetimeselected < max(stse.datetimeselected) Over (partition by Stvs.visitorID) then 'N'
when stse.SessionID is null Over (partition by Stvs.visitorID) then 'Y'
end as 'Y/N'
答案 0 :(得分:0)
CASE
语句中的每一行都是单独评估的。因此,您根本不需要OVER
子句。
如果您不保证不ELSE 'Y'
,请考虑使用NULLs
。
我的版本:
Case
when stse.datetimeselected < max(stse.datetimeselected) Over (partition by Stvs.visitorID) then 'N'
when stse.SessionID is null then 'Y'
END as 'Y/N'
答案 1 :(得分:0)
尝试以下......
Case
when stse.datetimeselected < max(stse.datetimeselected) Over (partition by Stvs.visitorID) then 'N'
when SUM(stse.SessionID) Over (partition by Stvs.visitorID) is null then 'Y'
END as 'Y/N'
OR
Case
when stse.datetimeselected < max(stse.datetimeselected) Over (partition by Stvs.visitorID) then 'N'
when COUNT(stse.SessionID) Over (partition by Stvs.visitorID) = 0 then 'Y'
END as 'Y/N'
或使用以下链接中的任何WINDOWING FUNCTIONS
代替COUNT(),SUM(),MAX()
Over Clause