【发布时间】:2021-10-20 11:04:56
【问题描述】:
我对 SQL 和大查询很陌生,所以这可能很简单。我正在对 BQ 中的公共数据集 GDELT 运行一些查询,并且对 LIMIT 有疑问。 GDELT 很大(14.4 TB),当我查询某些东西时,在这种情况下是一个人,我可以获得多达 100k 行或更多的结果,这种情况太多了。但是当我使用 LIMIT 时,它似乎并没有真正将结果平均分配在日期上,导致我得到非常随机的时间线。限制是如何工作的?有没有办法根据天数更均匀地获得结果?
SELECT DATE,V2Tone,DocumentIdentifier as URL, Themes, Persons, Locations
FROM `gdelt-bq.gdeltv2.gkg_partitioned`
WHERE DATE>=20210610000000 and _PARTITIONTIME >= TIMESTAMP(@start_date)
AND DATE<=20210818999999 and _PARTITIONTIME <= TIMESTAMP(@end_date)
AND LOWER(DocumentIdentifier) like @url_topic
LIMIT @limit
它基于 15k 个结果,但它们在几天内分布非常不均匀/随机(因为如果我不使用限制,总共有超过 500k 个结果)。我想做一个查询,将我的输出限制为 15k,但在几天内对数据进行平均分区。
【问题讨论】:
-
粘贴文本而不是屏幕截图
-
我还看到你的表是时间摄取分区的,我不太明白为什么日期列上还有过滤器?!
标签: sql google-bigquery sql-limit gdelt