我想使用BigQuery在全局数据库上运行事件、语言和音调(GDELT(查询。我专门搜索关键术语(如贿赂或腐败(,并按年份(2010年、2011年、2012年等(对结果进行分组。我可以使用.full_events
GDELT(参见示例2(按年份分组并计数出现次数,但不能使用.gkg_disparated GDELT。示例1中的SQL代码是有效的并且可以运行,但是,它似乎并没有根据我所知道/期望的结果产生预期的结果。我想这与我指定日期的方式有关,但我真的不知道。有人能帮忙解释为什么和/或纠正错误吗?提前谢谢。
以下代码将使用大量GB,因此根据需要更改术语(
(示例1:代码没有产生.gcg分区的预期结果(
SELECT DATE, count(*)
FROM `gdelt-bq.gdeltv2.gkg_partitioned`
WHERE (V2Themes LIKE '%corruption%'
OR V2Themes LIKE '%bribery%'
AND DATE>=20100101000000 and _PARTITIONTIME >= TIMESTAMP("2010-01-01") AND DATE<=20151231999999
and _PARTITIONTIME <= TIMESTAMP("2015-12-31")
GROUP BY DATE
(示例2:.full_events代码确实产生了预期的结果(
(SELECT YEAR, ActionGeo_CountryCode, COUNT(*) c
FROM `gdelt-bq.full.events`
WHERE ActionGeo_CountryCode IS NOT NULL
and YEAR >2010
and YEAR <= 2020
and QuadClass=4
GROUP BY 1, 2)
我不能100%确定您的问题是什么,但WHERE
子句看起来不正确。我希望:
WHERE (V2Themes LIKE '%corruption%' OR V2Themes LIKE '%bribery%') AND
DATE >= 20100101000000 AND
DATE <= 20151231999999 AND
_PARTITIONTIME >= TIMESTAMP('2010-01-01') AND
_PARTITIONTIME <= TIMESTAMP('2015-12-31')
注意OR
条件周围的括号。