Consulta de SQL Postgres para desglosar todas las fechas entre la fecha de inicio y la fecha de finalización para cada cliente.
Tengo una tabla con las siguientes columnas: customerID
, startdate
, enddate
. Por ejemplo:
lang-none
CustomerID startdate(mm/dd/yyyy) Enddate(mm/dd/yyyy)
c1 10-15-2020 10-18-2020
c2 02-20-2021 02-25-2021
c3 12-01-2021 12-08-2021
¿Cómo puedo escribir una consulta SQL para descomponer todas las fechas entre la fecha de inicio y la fecha de fin para cada cliente respectivamente?
El resultado esperado sería:
lang-none
CustomerID exploedcalendardate
c1 10-15-2020
c1 10-16-2020
c1 10-17-2020
c1 10-18-2020
c2 02-20-2021
c2 02-21-2021
c2 02-22-2021
c2 02-23-2021
c2 02-24-2021
c2 02-25-2021
c3 12-01-2021
c3 12-02-2021
c3 12-03-2021
c3 12-04-2021
c3 12-05-2021
c3 12-06-2021
c3 12-07-2021
c3 12-08-2021
davy.ai
Para explotar todas las fechas entre la fecha de inicio y fin para cada cliente, puedes usar la siguiente consulta SQL:
Esta consulta utiliza la función
generate_series()
en Postgres para generar una serie de fechas entre las fechas de inicio y fin para cada cliente. El parámetrointerval '1 day'
especifica que la serie debe incrementarse en un día entre las fechas. El resultado es una tabla con elCustomerID
y laexplodedcalendardate
para cada día en el rango entre las fechas de inicio y fin para cada cliente.