【发布时间】:2020-11-23 19:57:52
【问题描述】:
我有两个表,其中包含两种不同类型的事件,这两个表都按事件的时间戳进行分区,我想创建一个它们之间的连接视图,它们具有相同的 id 和同一季度的事件。
CREATE TABLE `proj1.test.table1` ( event_timestamp TIMESTAMP, id INT64 ) 按日期划分(event_timestamp); CREATE TABLE `proj1.test.table2` ( event_timestamp TIMESTAMP, id INT64 ) 按日期划分(event_timestamp); 创建视图`proj1.test.view1`作为 选择 t1.event_timestamp,t1.id FROM `proj1.test.table1` t1 内连接`proj1.test.table2` t2 使用(ID) WHERE TIMESTAMP_TRUNC(t1.event_timestamp, Quarter) = TIMESTAMP_TRUNC(t2.event_timestamp, Quarter) ;问题是这个视图只修剪第一个表中的分区。
选择 * FROM test.view1 WHERE event_timestamp BETWEEN '2020-01-01' AND '2020-04-01'为了能够修剪两个表的分区,我必须使用文字表达式而不是计算值:
创建视图`proj1.test.view1`作为 选择 t1.event_timestamp,t1.id FROM `proj1.test.table1` t1 内连接`proj1.test.table2` t2 使用(ID) WHERE TIMESTAMP_TRUNC(t2.event_timestamp, 季度) = '2020-01-01'【问题讨论】:
标签: google-bigquery