Padding dates in Vertica SQL -
i have 2 tables in vertica database. 1 contains reservation data date of reservation made , date of arrival. other table 1 column dates between 2010-2030. want create query select reservation table data create new date field pads rows arrival date minus 1 day, way arrival date minus 90 days.
table1:
+--------+------------+-----------+--------+--------+ | id | res_date | arr_date | value1 | value2 | +--------+------------+-----------+--------+--------+ | 123456 | 12/16/2015 | 1/25/2016 | 4 | 100 | +--------+------------+-----------+--------+--------+
my query far i'm not sure how create rows each unique record pad minus 90 days.
select t1.id ,t1.reservation_date ,dates.date,t1.value1 ,t1.value2,t1.arrival_date sandbox.t1 left join sandbox.dates on t1.reservation_date = dates.date
the desired output such:
+--------+------------+-----------+--------+--------+-----------+ | id | res_date | arr_date | value1 | value2 | date_ext | +--------+------------+-----------+--------+--------+-----------+ | 123456 | 12/16/2015 | 1/25/2016 | 4 | 100 | 1/25/2016 | | 123456 | | | | | 1/24/2016 | | 123456 | | | | | 1/23/2016 | | 123456 | | | | | 1/22/2016 | | 123456 | | | | | 1/21/2016 | +--------+------------+-----------+--------+--------+-----------+
continued date_ext down -90 days.
try below query:
create table mystore.table1 (id int, res_date date, arr_date date, value1 int, value2 int) ; insert mystore.table1 ( id, res_date, arr_date, value1,value2) values (123456, '16-dec-2015', '25-jan-2016', 4, 100) ; mystore_owner=> select * mystore.table1; id | res_date | arr_date | value1 | value2 --------+------------+------------+--------+-------- 123456 | 2015-12-16 | 2016-01-25 | 4 | 100 create table mystore.dates (date_col date) ; insert mystore.dates (date_col) values ('25-jan-2016'); insert mystore.dates (date_col) values ('24-jan-2016'); insert mystore.dates (date_col) values ('23-jan-2016'); insert mystore.dates (date_col) values ('22-jan-2016'); insert mystore.dates (date_col) values ('21-jan-2016'); insert mystore.dates (date_col) values ('20-jan-2016'); insert mystore.dates (date_col) values ('19-jan-2016'); insert mystore.dates (date_col) values ('18-jan-2016'); insert mystore.dates (date_col) values ('17-jan-2016'); insert mystore.dates (date_col) values ('16-jan-2016'); insert mystore.dates (date_col) values ('15-jan-2016'); insert mystore.dates (date_col) values ('14-jan-2016'); insert mystore.dates (date_col) values ('13-jan-2016'); insert mystore.dates (date_col) values ('12-jan-2016'); insert mystore.dates (date_col) values ('11-jan-2016'); insert mystore.dates (date_col) values ('10-jan-2016'); insert mystore.dates (date_col) values ('09-jan-2016'); insert mystore.dates (date_col) values ('08-jan-2016'); insert mystore.dates (date_col) values ('07-jan-2016'); insert mystore.dates (date_col) values ('06-jan-2016'); insert mystore.dates (date_col) values ('05-jan-2016'); insert mystore.dates (date_col) values ('04-jan-2016'); insert mystore.dates (date_col) values ('03-jan-2016'); insert mystore.dates (date_col) values ('02-jan-2016'); insert mystore.dates (date_col) values ('01-jan-2016'); insert mystore.dates (date_col) values ('31-dec-2016'); insert mystore.dates (date_col) values ('30-dec-2016'); insert mystore.dates (date_col) values ('29-dec-2016'); insert mystore.dates (date_col) values ('28-dec-2016'); insert mystore.dates (date_col) values ('27-dec-2016'); insert mystore.dates (date_col) values ('26-dec-2016'); insert mystore.dates (date_col) values ('25-dec-2016'); insert mystore.dates (date_col) values ('24-dec-2016'); insert mystore.dates (date_col) values ('23-dec-2016'); insert mystore.dates (date_col) values ('22-dec-2016'); insert mystore.dates (date_col) values ('21-dec-2016'); insert mystore.dates (date_col) values ('20-dec-2016'); insert mystore.dates (date_col) values ('19-dec-2016'); insert mystore.dates (date_col) values ('18-dec-2016'); insert mystore.dates (date_col) values ('17-dec-2016'); insert mystore.dates (date_col) values ('16-dec-2016'); insert mystore.dates (date_col) values ('15-dec-2016'); insert mystore.dates (date_col) values ('14-dec-2016'); insert mystore.dates (date_col) values ('13-dec-2016'); insert mystore.dates (date_col) values ('12-dec-2016'); insert mystore.dates (date_col) values ('11-dec-2016'); insert mystore.dates (date_col) values ('10-dec-2016'); insert mystore.dates (date_col) values ('09-dec-2016'); insert mystore.dates (date_col) values ('08-dec-2016'); insert mystore.dates (date_col) values ('07-dec-2016'); insert mystore.dates (date_col) values ('06-dec-2016'); insert mystore.dates (date_col) values ('05-dec-2016'); insert mystore.dates (date_col) values ('04-dec-2016'); insert mystore.dates (date_col) values ('03-dec-2016'); insert mystore.dates (date_col) values ('02-dec-2016'); insert mystore.dates (date_col) values ('01-dec-2016'); insert mystore.dates (date_col) values ('30-nov-2016'); insert mystore.dates (date_col) values ('29-nov-2016'); insert mystore.dates (date_col) values ('28-nov-2016'); insert mystore.dates (date_col) values ('27-nov-2016'); insert mystore.dates (date_col) values ('26-nov-2016'); insert mystore.dates (date_col) values ('25-nov-2016'); insert mystore.dates (date_col) values ('24-nov-2016'); insert mystore.dates (date_col) values ('23-nov-2016'); insert mystore.dates (date_col) values ('22-nov-2016'); insert mystore.dates (date_col) values ('21-nov-2016'); insert mystore.dates (date_col) values ('20-nov-2016'); insert mystore.dates (date_col) values ('19-nov-2016'); insert mystore.dates (date_col) values ('18-nov-2016'); insert mystore.dates (date_col) values ('17-nov-2016'); insert mystore.dates (date_col) values ('16-nov-2016'); insert mystore.dates (date_col) values ('15-nov-2016'); insert mystore.dates (date_col) values ('14-nov-2016'); insert mystore.dates (date_col) values ('13-nov-2016'); insert mystore.dates (date_col) values ('12-nov-2016'); insert mystore.dates (date_col) values ('11-nov-2016'); insert mystore.dates (date_col) values ('10-nov-2016'); insert mystore.dates (date_col) values ('09-nov-2016'); insert mystore.dates (date_col) values ('08-nov-2016'); insert mystore.dates (date_col) values ('07-nov-2016'); insert mystore.dates (date_col) values ('06-nov-2016'); insert mystore.dates (date_col) values ('05-nov-2016'); insert mystore.dates (date_col) values ('04-nov-2016'); insert mystore.dates (date_col) values ('03-nov-2016'); insert mystore.dates (date_col) values ('02-nov-2016'); insert mystore.dates (date_col) values ('01-nov-2016'); insert mystore.dates (date_col) values ('31-oct-2016'); insert mystore.dates (date_col) values ('30-oct-2016'); insert mystore.dates (date_col) values ('29-oct-2016'); insert mystore.dates (date_col) values ('28-oct-2016'); insert mystore.dates (date_col) values ('27-oct-2016'); insert mystore.dates (date_col) values ('26-oct-2016'); insert mystore.dates (date_col) values ('25-oct-2016'); insert mystore.dates (date_col) values ('24-oct-2016'); insert mystore.dates (date_col) values ('23-oct-2016'); insert mystore.dates (date_col) values ('22-oct-2016'); insert mystore.dates (date_col) values ('21-oct-2016'); insert mystore.dates (date_col) values ('20-oct-2016'); insert mystore.dates (date_col) values ('19-oct-2016'); insert mystore.dates (date_col) values ('18-oct-2016'); insert mystore.dates (date_col) values ('17-oct-2016'); insert mystore.dates (date_col) values ('16-oct-2016'); insert mystore.dates (date_col) values ('15-oct-2016'); insert mystore.dates (date_col) values ('14-oct-2016'); insert mystore.dates (date_col) values ('13-oct-2016'); insert mystore.dates (date_col) values ('12-oct-2016'); insert mystore.dates (date_col) values ('11-oct-2016'); insert mystore.dates (date_col) values ('10-oct-2016'); insert mystore.dates (date_col) values ('09-oct-2016'); insert mystore.dates (date_col) values ('08-oct-2016'); insert mystore.dates (date_col) values ('07-oct-2016'); insert mystore.dates (date_col) values ('06-oct-2016'); insert mystore.dates (date_col) values ('05-oct-2016'); insert mystore.dates (date_col) values ('04-oct-2016'); insert mystore.dates (date_col) values ('03-oct-2016'); insert mystore.dates (date_col) values ('02-oct-2016'); insert mystore.dates (date_col) values ('01-oct-2016'); insert mystore.dates (date_col) values ('30-sep-2016'); insert mystore.dates (date_col) values ('29-sep-2016'); insert mystore.dates (date_col) values ('28-sep-2016'); insert mystore.dates (date_col) values ('27-sep-2016'); insert mystore.dates (date_col) values ('26-sep-2016'); insert mystore.dates (date_col) values ('25-sep-2016'); insert mystore.dates (date_col) values ('24-sep-2016'); insert mystore.dates (date_col) values ('23-sep-2016'); insert mystore.dates (date_col) values ('22-sep-2016'); insert mystore.dates (date_col) values ('21-sep-2016'); insert mystore.dates (date_col) values ('20-sep-2016'); insert mystore.dates (date_col) values ('19-sep-2016'); insert mystore.dates (date_col) values ('18-sep-2016'); insert mystore.dates (date_col) values ('17-sep-2016'); insert mystore.dates (date_col) values ('16-sep-2016'); insert mystore.dates (date_col) values ('15-sep-2016'); insert mystore.dates (date_col) values ('14-sep-2016'); insert mystore.dates (date_col) values ('13-sep-2016'); insert mystore.dates (date_col) values ('12-sep-2016'); insert mystore.dates (date_col) values ('11-sep-2016'); insert mystore.dates (date_col) values ('10-sep-2016'); insert mystore.dates (date_col) values ('09-sep-2016'); insert mystore.dates (date_col) values ('08-sep-2016'); insert mystore.dates (date_col) values ('07-sep-2016'); insert mystore.dates (date_col) values ('06-sep-2016'); insert mystore.dates (date_col) values ('05-sep-2016'); insert mystore.dates (date_col) values ('04-sep-2016'); insert mystore.dates (date_col) values ('03-sep-2016'); insert mystore.dates (date_col) values ('02-sep-2016'); insert mystore.dates (date_col) values ('01-sep-2016'); insert mystore.dates (date_col) values ('31-aug-2016'); insert mystore.dates (date_col) values ('30-aug-2016'); insert mystore.dates (date_col) values ('29-aug-2016'); insert mystore.dates (date_col) values ('28-aug-2016'); insert mystore.dates (date_col) values ('27-aug-2016'); insert mystore.dates (date_col) values ('26-aug-2016'); insert mystore.dates (date_col) values ('25-aug-2016'); insert mystore.dates (date_col) values ('24-aug-2016'); insert mystore.dates (date_col) values ('23-aug-2016'); insert mystore.dates (date_col) values ('22-aug-2016'); insert mystore.dates (date_col) values ('21-aug-2016'); insert mystore.dates (date_col) values ('20-aug-2016'); insert mystore.dates (date_col) values ('19-aug-2016'); insert mystore.dates (date_col) values ('18-aug-2016'); insert mystore.dates (date_col) values ('17-aug-2016'); insert mystore.dates (date_col) values ('16-aug-2016'); insert mystore.dates (date_col) values ('15-aug-2016'); insert mystore.dates (date_col) values ('14-aug-2016'); insert mystore.dates (date_col) values ('13-aug-2016'); insert mystore.dates (date_col) values ('12-aug-2016'); insert mystore.dates (date_col) values ('11-aug-2016'); insert mystore.dates (date_col) values ('10-aug-2016'); insert mystore.dates (date_col) values ('09-aug-2016'); select t1.id ,(case when t1.arr_date = d1.date_col t1.res_date else null end) res_date ,(case when t1.arr_date = d1.date_col t1.arr_date else null end) arr_date ,(case when t1.arr_date = d1.date_col t1.value1 else null end) value1 ,(case when t1.arr_date = d1.date_col t1.value2 else null end) value2 ,d1.date_col mystore.dates d1 left join mystore.table1 t1 on t1.arr_date = d1.date_col date_col <= (select max(arr_date) mystore.table1) order date_col desc limit 90 ;
Comments
Post a Comment