BigQuery/GDELT的奇怪结果.如何正确解析日期



我想使用BigQuery在全局数据库上运行事件、语言和音调(GDELT(查询。我专门搜索关键术语(如贿赂或腐败(,并按年份(2010年、2011年、2012年等(对结果进行分组。我可以使用.full_eventsGDELT(参见示例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条件周围的括号。

最新更新