LIMIT不会限制结果的数量 - 这将起到什么作用?

时间:2018-03-23 12:17:08

标签: google-bigquery

运行以下查询,我得到的输出超过10行。当我改变" LIMIT 10"条款到" LIMIT 0" ,我得到空的结果。 从BigQuery

中返回值中提取10个结果的正确方法是什么
SELECT
  UNIQUE(index) AS sample
FROM
  [dataset:table]
LIMIT 10

结果是79318行。

感谢, eilalan

1 个答案:

答案 0 :(得分:2)

很可能你的表有重复的字段,因此当你使用BigQuery Legacy SQL它会返回10行但是在UI中它们被展平,重复字段中的所有元素都显示为一行,因此你会看到超过10行/> 要看到这一点 - 只使用BigQuery Standard SQL,它不会使结果变平,而是以分层方式在UI中显示

所以,取决于你需要什么 - 如果你需要原始的10行 - 你已经拥有它们,它们只是在UI中为你扁平化(参见上面的解释)。如果您需要从展平结果中获得10行,则需要首先FLATTEN

但最好的方法就是使用BigQuery Standard SQL(如果索引只是单个重复字段(不是记录)

SELECT DISTINCT sample
FROM `dataset.table`, UNNEST(index) sample
LIMIT 10

如果索引是重复记录 - 您应该在该记录中指定字段(例如id)

SELECT DISTINCT sample.id
FROM `dataset.table`, UNNEST(index) sample
LIMIT 10