编写一个分析函数来标记某些列的最后日期
Writing an analytic function to mark last date of some column
你能帮我写一个分析函数来标记客户服务停止的最后日期吗?例如,一位客户的服务有 2-3 次停靠,我想计算有多少次停靠,并标记最后一次停靠的日期。
我正在使用
SELECT column_name1, column_name2, column_name3, column_name4
, ROW_NUMBER() OVER(PARTITION BY column_name3 ORDER BY column_name4) AS Something
FROM ...
WHERE ...
ORDER B
其中 column_name3
包含状态 - 服务是否已停止,column_name4
包含上次停止的日期。
希望我理解正确
select unique column_name1, column_name2, column_name3,
max(when column_name3 = 'inactive' then column_name4 end) over(partition by column_name1) last_date,
count(when column_name3 = 'inactive' then 1 end) over(partition by column_name1) cnt
你能帮我写一个分析函数来标记客户服务停止的最后日期吗?例如,一位客户的服务有 2-3 次停靠,我想计算有多少次停靠,并标记最后一次停靠的日期。
我正在使用
SELECT column_name1, column_name2, column_name3, column_name4
, ROW_NUMBER() OVER(PARTITION BY column_name3 ORDER BY column_name4) AS Something
FROM ...
WHERE ...
ORDER B
其中 column_name3
包含状态 - 服务是否已停止,column_name4
包含上次停止的日期。
希望我理解正确
select unique column_name1, column_name2, column_name3,
max(when column_name3 = 'inactive' then column_name4 end) over(partition by column_name1) last_date,
count(when column_name3 = 'inactive' then 1 end) over(partition by column_name1) cnt