Sql 编写一个分析函数来标记某列的最后日期

Sql 编写一个分析函数来标记某列的最后日期,sql,oracle,oracle11g,row-number,Sql,Oracle,Oracle11g,Row Number,你能帮我写一个分析函数来标记客户端服务停止的最后日期吗。例如,一个客户的服务有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 ... ORDE

你能帮我写一个分析函数来标记客户端服务停止的最后日期吗。例如,一个客户的服务有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\u name3
包含状态-服务是否已停止,
column\u 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

谢谢你的编辑。我的英语不是很好。第3列中有“活动”、“非活动”。列_name4包含日期-列_name3中的哪个日期变为活动或不活动哪个列标识客户端?列1是标识号