我在 BigQuery 中有一个如下所示的表:
schema = [
bigquery.SchemaField('timestamp', 'TIMESTAMP', mode='REQUIRED', description='Data point timestamp'),
bigquery.SchemaField('event_id', 'STRING', description='EventID'),
[...]
]
该表有一个相当大的数据集,我试图找到一个有效的查询,它返回过去 24 小时内以及过去 N 天内发生的事件数。即两条不同的记录,条件不同但相同event_id
。我不太关心实际的event_id
,而是分布。
理想情况下,查询将返回如下内容:
7_days: 20
30_days: 15
60_days: 7
如果在纯 SQL 中无法做到这一点,我也可以使用 Pandas。
感谢@mustaccio 上面的指针。以下是我如何设法让它使用
INTERSECT DISTINCT
.最后的两个日期
SELECT
当然需要根据标准进行调整。