Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- id code date1 date2 block
- --------------------------------------------------
- 20 1234 2017-07-01 2017-07-31 1
- 15 1234 2017-06-01 2017-06-30 1
- 13 1234 2017-05-01 2017-05-31 0
- 11 1234 2017-03-01 2017-03-31 0
- 9 1234 2017-02-01 2017-02-28 1
- 8 1234 2017-01-01 2017-01-31 0
- 7 1234 2016-11-01 2016-11-31 0
- 6 1234 2016-10-01 2016-10-31 1
- 2 1234 2016-09-01 2016-09-31 1
- id code date1 date2 block desired_rank
- -------------------------------------------------------------------
- 20 1234 2017-07-01 2017-07-31 1 1
- 15 1234 2017-06-01 2017-06-30 1 1
- 13 1234 2017-05-01 2017-05-31 0 2
- 11 1234 2017-03-01 2017-03-31 0 2
- 9 1234 2017-02-01 2017-02-28 1 3
- 8 1234 2017-01-01 2017-01-31 0 4
- 7 1234 2016-11-01 2016-11-31 0 4
- 6 1234 2016-10-01 2016-10-31 1 5
- 2 1234 2016-09-01 2016-09-31 1 5
- id code date1 date2 block dense_rank()
- -------------------------------------------------------------------
- 20 1234 2017-07-01 2017-07-31 1 1
- 15 1234 2017-06-01 2017-06-30 1 2
- 13 1234 2017-05-01 2017-05-31 0 1
- 11 1234 2017-03-01 2017-03-31 0 2
- 9 1234 2017-02-01 2017-02-28 1 3
- 8 1234 2017-01-01 2017-01-31 0 3
- 7 1234 2016-11-01 2016-11-31 0 4
- 6 1234 2016-10-01 2016-10-31 1 4
- 2 1234 2016-09-01 2016-09-31 1 5
- CREATE TEMP TABLE data (id integer,code text, date1 date, date2 date, block integer);
- INSERT INTO data VALUES
- (20,'1234', '2017-07-01','2017-07-31',1),
- (15,'1234', '2017-06-01','2017-06-30',1),
- (13,'1234', '2017-05-01','2017-05-31',0),
- (11,'1234', '2017-03-01','2017-03-31',0),
- (9, '1234', '2017-02-01','2017-02-28',1),
- (8, '1234', '2017-01-01','2017-01-31',0),
- (7, '1234', '2016-11-01','2016-11-30',0),
- (6, '1234', '2016-10-01','2016-10-31',1),
- (2, '1234', '2016-09-01','2016-09-30',1);
- SELECT *,dense_rank() OVER (PARTITION BY code,block ORDER BY date2 DESC)
- FROM data
- ORDER BY date2 DESC;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement