Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*create table segment (date date, ClientID varchar(6),SegmentID int)
- insert into segment values
- ('2018-01-31' ,'A11111', 2),
- ('2018-02-28' ,'A11111', 2),
- ('2018-03-31' ,'A11111', 1),
- ('2018-04-30' ,'A11111', 1),
- ('2017-11-30' ,'B22222', 1),
- ('2017-10-31' ,'B22222', 1),
- ('2017-09-30' ,'B22222', 3),
- ('2017-09-30' ,'C33333', 1),
- ('2017-10-31' ,'C33333', 1) */
- -- с помощью подзапроса определяем дату окончания сегмента
- WITH t1 AS (
- SELECT date, ClientID, SegmentID, LEAD(date, 1, NULL) OVER(PARTITION BY ClientID, SegmentID ORDER BY date) date1
- FROM segment
- )
- SELECT ClientID, SegmentID, date1-date
- FROM t1
- -- оставляем только те строки, в которых период действия уже закончился
- WHERE date1-date IS NOT NULL
Advertisement
Add Comment
Please, Sign In to add comment