【发布时间】:2019-10-16 21:47:18
【问题描述】:
我是大查询的新手,我正在尝试使用两个大查询表获取一些数据。第一个表包含 id 和购买日期,第二个日期包含所有用户活动,其中包含活动当天的日期列。
我要做的是针对第一个表中的所有 ID,从第二个表中获取所有这些 ID 的所有活动,以便活动日期介于购买表的日期和该日期后 30 周之间购买表。
WITH
purchasers AS (
SELECT
*
FROM
`table1`),
activity AS(
SELECT
*
FROM
`table2`
WHERE
date BETWEEN (DATE_SUB(purchasers.four_week_back,INTERVAL 30 week))
AND ((purchasers.four_week_back)) )
SELECT
*
FROM
purchasers
JOIN
activity
USING
(id)
Table 1-
Id product_type_id created_at four_week_back
594157 72 2018-09-27 2018-03-01
10532522 72 2018-09-27 2018-03-01
535061 72 2018-09-27 2018-03-01
10740216 72 2018-09-27 2018-03-01
6093925 72 2018-09-27 2018-03-01
1712485 72 2018-09-28 2018-03-02
3381129 72 2018-09-28 2018-03-02
4290069 72 2018-09-28 2018-03-02
647413 72 2018-09-28 2018-03-02
10482204 72 2018-09-28 2018-03-02
6585925 72 2018-09-28 2018-03-02
1409073 72 2018-09-28 2018-03-02
10749573 72 2018-09-28 2018-03-02
Table 2-
id date varA var2
594157 2018-02-19 5637 TRUE
594157 2018-02-04 43160 FALSE
594157 2018-01-17 43160 TRUE
10740216 2018-02-06 43160 FALSE
10740216 2018-02-19 43160 TRUE
10740216 2018-02-09 43161 FALSE
10740216 2017-12-27 43161 TRUE
4290069 2018-02-18 43161 FALSE
4290069 2018-01-05 43161 TRUE
4290069 2018-02-07 43161 FALSE
4290069 2018-02-18 43161 TRUE
4290069 2018-02-19 43161 FALSE
4290069 2018-01-27 43162 TRUE
但是我一直无法这样做。期望的输出是对于表 1 中的所有 id,从表中获取日期范围(table1.date 和 table1.date,30 周间隔)之间的活动。
【问题讨论】:
-
看看你的join条件是否至少多于id。您还应该阅读 joins.dev.mysql.com/doc/refman/8.0/en/join.html
标签: mysql google-analytics google-bigquery