Re: Joining with calendar table
От | Adrian Klaver |
---|---|
Тема | Re: Joining with calendar table |
Дата | |
Msg-id | 150d21a4-4fcf-dd4d-85ea-063194d89d7c@aklaver.com обсуждение исходный текст |
Ответ на | Joining with calendar table (Pól Ua L. <dragam@protonmail.com>) |
Список | pgsql-general |
On 4/19/22 00:34, Pól Ua L. wrote: > > > Bonjour a tous/Hello all, > > > Small problem - I hope it not to trivial for here. > > We created a table, then someone deleted some records and we want to put > them back, but we not sure how. > > CREATE TABLE dat AS > SELECT > GENERATE_SERIES > ( > '2022-03-01'::DATE, > '2022-04-18'::DATE, > '1 DAY' > ) AS jour; > > So, all days from March 01 to Easter Monday. > > Then someone delete the weekends. > > > delete from dat where extract(isodow from jour) IN (6, 7); > > > > But, there are also actvities on these days also, so I would like to > put them back in. > > I think I need a left join with the calendar table, but am not sure how > to do this so we have full months again. > > Could someone show me how this to be done please? BEGIN; insert into dat select j.a from GENERATE_SERIES ( '2022-03-01'::DATE, '2022-04-18'::DATE, '1 DAY' ) as j(a) left join dat on j.a = dat.jour where dat.jour is null; INSERT 0 14 Verify the dates where added then: COMMIT; -- Adrian Klaver adrian.klaver@aklaver.com
В списке pgsql-general по дате отправления: