【发布时间】:2018-08-14 03:08:31
【问题描述】:
我有一个应用程序,如果有人没有为帐户付款,我想添加一个限制,他们可以在其中抽样数据查询,但不能查看所有数据。假设有一个 100M 行的索引,他们想要执行以下查询:
SELECT product, SUM(revenue)
FROM bq_table
GROUP BY product
我如何将其限制在前 X 行,而无需通过执行全表扫描来编写与普通查询一样多的查询。例如,如下所示:
# x = 10000
SELECT product, SUM(revenue) FROM (
SELECT * FROM bq_table LIMIT 10000
) bq_table_limited GROUP BY product
请注意,我事先并不知道所有列,因此在子选择中编写 where 子句并不容易。
【问题讨论】:
标签: sql google-bigquery