- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是大查询的新手,我正在尝试使用两个大查询表获取一些数据。第一个表包含 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 周间隔)之间的事件。
最佳答案
The desired output is that for all the id from the table 1, get the activities from table between the date range (table1.date and table1.date, 30 week interval)
以下适用于 BigQuery 标准 SQL
#standardSQL
SELECT *
FROM `project.dataset.table1` t1
LEFT JOIN `project.dataset.table2` t2
USING (id)
WHERE date BETWEEN DATE_SUB(created_at, INTERVAL 30 WEEK) AND created_at
注意:您可以在上面使用 SELECT *
假设没有其他不明确的列而不是 id
下面是供您测试的示例
#standardSQL
WITH `project.dataset.table1` AS (
SELECT 594157 id, 72 product_type_id, DATE '2018-09-27' created_at, DATE '2018-03-01' four_week_back UNION ALL
SELECT 10532522, 72, '2018-09-27', '2018-03-01' UNION ALL
SELECT 535061, 72, '2018-09-27', '2018-03-01' UNION ALL
SELECT 10740216, 72, '2018-09-27', '2018-03-01' UNION ALL
SELECT 6093925, 72, '2018-09-27', '2018-03-01' UNION ALL
SELECT 1712485, 72, '2018-09-28', '2018-03-02' UNION ALL
SELECT 3381129, 72, '2018-09-28', '2018-03-02' UNION ALL
SELECT 4290069, 72, '2018-09-28', '2018-03-02' UNION ALL
SELECT 647413, 72, '2018-09-28', '2018-03-02' UNION ALL
SELECT 10482204, 72, '2018-09-28', '2018-03-02' UNION ALL
SELECT 6585925, 72, '2018-09-28', '2018-03-02' UNION ALL
SELECT 1409073, 72, '2018-09-28', '2018-03-02' UNION ALL
SELECT 10749573, 72, '2018-09-28', '2018-03-02'
), `project.dataset.table2` AS (
SELECT 594157 id, DATE '2018-03-19' day, 5637 varA, TRUE var2 UNION ALL
SELECT 594157, '2018-03-04', 43160, FALSE UNION ALL
SELECT 594157, '2018-01-17', 43160, TRUE UNION ALL
SELECT 10740216, '2018-03-06', 43160, FALSE UNION ALL
SELECT 10740216, '2018-03-19', 43160, TRUE UNION ALL
SELECT 10740216, '2018-02-09', 43161, FALSE UNION ALL
SELECT 10740216, '2017-12-27', 43161, TRUE UNION ALL
SELECT 4290069, '2018-02-18', 43161, FALSE UNION ALL
SELECT 4290069, '2018-01-05', 43161, TRUE UNION ALL
SELECT 4290069, '2018-02-07', 43161, FALSE UNION ALL
SELECT 4290069, '2018-02-18', 43161, TRUE UNION ALL
SELECT 4290069, '2018-02-19', 43161, FALSE UNION ALL
SELECT 4290069, '2018-01-27', 43162, TRUE
)
SELECT *
FROM `project.dataset.table1` t1
LEFT JOIN `project.dataset.table2` t2
USING (id)
WHERE day BETWEEN DATE_SUB(created_at, INTERVAL 30 WEEK) AND created_at
结果
Row id product_type_id created_at four_week_back day varA var2
1 594157 72 2018-09-27 2018-03-01 2018-03-19 5637 true
2 594157 72 2018-09-27 2018-03-01 2018-03-04 43160 false
3 10740216 72 2018-09-27 2018-03-01 2018-03-06 43160 false
4 10740216 72 2018-09-27 2018-03-01 2018-03-19 43160 true
关于mysql - 根据另一个表中的 ID 和日期过滤 bigquery 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58422098/
我有一个包含数据的表,其中在 A 列中我有一组重复的数据(一个接一个)。 我只想根据 A 列中的值(没有其他条件)选择每个组的第一行。请注意,我还希望为提到的新发现的行选择所有相应的列(我不想排除它们
我有一个包含 340GB 数据的表,但我们只使用了最后一周的数据。因此,为了最小化将这些数据移动到分区表或分片表的成本计划。 我对分片表和分区做了一些实验。我创建了分区表并加载了两天的数据(两个分区)
我想安排将数据从 GCS 存储桶加载到 BigQuery 表。如果我使用 bigquery-transfer 与调度及时的 bigquery-loads 的核心区别是什么? 最佳答案 它们是相同的。
我想安排将数据从 GCS 存储桶加载到 BigQuery 表。如果我使用 bigquery-transfer 与调度及时的 bigquery-loads 的核心区别是什么? 最佳答案 它们是相同的。
我想编写一个 BigQuery 命令行命令来检索 BigQuery 表的最后修改时间。我怎样才能做到这一点? 仅当 BigQuery 表的最后修改日期时间大于某个日期时间时,我才会使用它。 最佳答案
我似乎无法将任何数据从 Socrata 上传到 BigQuery。我收到“加载操作中的 BigQuery 错误:无法连接 BigQuery 服务器。”最初我得到的是 0 错误错误的限制。现在我已将 C
我正在尝试弄清楚是否可以从大查询中导出 hyperloglog 草图并在外部合并它们以进行基数估计。是否有可用的开源库可以轻松解析大型查询草图? 如果不是,是否有任何关于 biq 查询的 hyperl
这是我用作https://cloud.google.com/bigquery/docs/managing-tables#bigquery-copy-table-python的引用的代码: source
构建管道时,源是 BigQueryIO.Read,您会得到一组 TableRow 对象以供使用。 我基本上想对那些 TableRow 对象进行一些小的更改,然后使用 BigQueryIO.Write
BigQuery API Client Libraries 之间有什么区别?和 BigQuery Storage API Client Libraries ? 在 BigQuery Storage R
据我所知,将数据流式传输到 BigQuery 会导致重复行,正如这里提到的 https://cloud.google.com/bigquery/streaming-data-into-bigquery
我在 BigQuery Jobs API 中注意到复制任务: https://developers.google.com/bigquery/docs/reference/v2/jobs#resourc
https://cloud.google.com/bigquery/docs/reference/datatransfer/rest/ 我正在寻找“bigquery 数据传输服务”的 php 客户端库
我正在从 GCS 中的 CSV 文件到 BQ 执行一些 ETL,一切正常,除了日期。我的表中的字段名称是 TEST_TIME,类型是 DATE,所以在 TableRow 中我尝试传递一个 java.u
我已经阅读了 BigQuery 连接器的文档(https://support.google.com/360suite/datastudio/answer/6370296?hl=en)。 我想将自定义查
当两个不同的billing account下有两个project,并且有跨两个project的授权view时,view的查询费用由哪个billing account来计费? 场景:项目 A 包含使用项
所以我有一张购买表: 用户编号 购买时间 数量 我有一张网站上的用户事件表: 用户编号 位置 浏览时间 如何在不超过 purchase_time 的情况下将 purchases 表与 activiti
我有一个 unix 时间戳列,在我的 csv 文件中以毫秒表示。现在,当我将这些数据插入到我的 bigQuery 表中并查询它时,我得到了这个错误 bigQuery not supporting mi
我目前正在将 BigQuery 表提取到 Google Cloud Storage 中的分片 .csv 中——是否有任何方法可以对提取的行进行洗牌/随机化? GCS .csv 将用作 GCMLE 模型
我需要从数据流更新和删除 BigQuery 中的记录。数据来自 Pubsub,并带有标识操作插入、更新、删除 (I、U、D) 的标志。插入不是问题。 有更新和删除的建议吗? 最佳答案 Dataflow
我是一名优秀的程序员,十分优秀!