Join 将开始日期和结束日期加入另一个表并汇总
表1表列为:Join 将开始日期和结束日期加入另一个表并汇总,join,presto,Join,Presto,表1表列为: cancel_date product total_cancels 6/1/2017 a 100 6/1/2017 b 40 6/2/2017 b 10 6/3/2017 b 20 . . . 6/1/2018 a 40 6/1/2018 b 10 表2 realdate cancel_start_date c
cancel_date product total_cancels
6/1/2017 a 100
6/1/2017 b 40
6/2/2017 b 10
6/3/2017 b 20
.
.
.
6/1/2018 a 40
6/1/2018 b 10
表2
realdate cancel_start_date cancel_end_date
6/1/2017 6/1/2016 4/1/2017
6/2/2017 6/2/2016 4/2/2017
6/3/2017 6/3/2016 4/3/2017
.
.
.
因此,表1.t2.取消开始日期和t2.取消结束日期之间的取消日期, 我如何连接这两个表 我想要什么
product realdate total_cancels cancel_date between start_date and end_date
a 6/1/2017 100000 6/1/2016-4/30/2017
b 6/1/2017 8000 6/1/2016-4/30/2017
a 6/2/2017 100000 6/2/2016-5/1/2017
b 6/2/2017 8000 6/2/2016-5/1/2017
...
您要做的是使用on条件将表_2连接到表_1。取消日期介于表2.取消开始日期和表2.取消结束日期之间。但首先,我们需要使用DATE_PARSE函数使日期具有可比性。最后,总结一下这些值
SELECT
table_1.product,
table_2.realdate,
SUM(total_cancels) AS total_cancels,
CONCAT(table_2.cancel_start_date, '-', table_2.cancel_end_date) as start_to_end
FROM table_1
JOIN table_2
WHERE DATE_PARSE(table_1. cancel_date, '%m/%d/%Y')
BETWEEN DATE_PARSE(table_2.cancel_start_date, '%m/%d/%Y')
AND DATE_PARSE(table_2.cancel_end_date, '%m/%d/%Y')
GROUP BY 1, 2, 4
您需要从表1中选择产品、取消日期。然后从表2中选择realdate,cancel\u date。求和或求和\u取消。然后将它们全部追加到一个输出表中。可以同时访问两个不同表中的行或列。请阅读并点击谷歌的“stackexchange家庭作业”,并显示您能够完成的部分。请阅读并采取行动。