SELECT x.period_state, -- x.rank_parti-ran,min(x.ymd) asstart_date,max(x.ymd) as end_dateFROM (SELECT a.period_state,a.ymd,row_number()OVER(partitionby a.period_state order by a.ymd ) as rank_parti,row_number()OVER(order by a.ymd ) as rankFROM (select'failed'as period_state,fail_date as ymd from leetcode.ex_1225_failedwhereyear(fail_date)='2019'union allselect'succeeded'as period_state,success_date as ymd from leetcode.ex_1225_succeededwhereyear(success_date)='2019') a ) x GROUP BY x.period_state,x.rank_parti-rankORDER BY x.start_date ;