【发布时间】:2019-12-12 16:20:11
【问题描述】:
我编写了一个代码来根据某些条件从 1 条记录创建更多记录。例如:如果用户购买了包月套餐,则该表将创建每周的记录,直到结束日期。
从这里:
Order ID|Date Purchased| Date Ended| Package|
001 | 2019-1-1 | 2019-2-1 | 1Month |
到这里:
Order ID|Date Purchased| Date Ended| Package| Date Weekly
001 |2019-1-1 | 2019-2-1 | 1Month | 2019-1-1
001 |2019-1-1 | 2019-2-1 | 1Month | 2019-1-8
001 |2019-1-1 | 2019-2-1 | 1Month | 2019-1-15
001 |2019-1-1 | 2019-2-1 | 1Month | 2019-1-23
问题是如何按订单 ID 执行第二个表与第一个表的左连接?如果我想加入其他记录?例如,订单 ID 002、003 等。在此先感谢 :)
这是我的代码
SELECT
*
FROM
(
SELECT
*,
DATE(PARSE_DATETIME('%Y-%m-%d %H:%M:%S', date_purchased)) AS date_purchased, --Transform datetime to time
DATE(PARSE_DATETIME('%Y-%m-%d %H:%M:%S', date_ended)) AS date_ended
FROM
`database_123`
),UNNEST(GENERATE_DATE_ARRAY(date_purchased, date_ended, INTERVAL 1 WEEK)) AS date_weekly
【问题讨论】:
标签: sql google-bigquery left-join unnest