首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BigQuery/GDELT出现了奇怪的结果。如何正确解析日期?

BigQuery/GDELT出现了奇怪的结果。如何正确解析日期?
EN

Stack Overflow用户
提问于 2020-08-28 14:01:16
回答 1查看 182关注 0票数 0

我想使用BigQuery在全局数据库上运行事件、语言和音调(GDELT)查询。我专门搜索关键术语(例如贿赂或腐败),并按年份(2010、2011、2012等)对结果进行分组。我可以使用.full_events GDELT (参见示例2)按年份分组并统计出现的次数,但使用.gkg_partitioned GDELT (示例1)则不行。示例1的SQL代码是有效的,并且可以运行,但是,根据我所知道的/期望的,它似乎没有产生预期的结果。我想这与我指定日期的方式有关,但我真的不知道。有人能帮我解释一下原因和/或纠正错误吗?提前谢谢。

下面的代码将占用大量GB空间,因此可以根据需要更改术语。)

(示例1:代码没有为.gkg分区产生预期的结果)

代码语言:javascript
复制
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代码确实产生了预期的结果)

代码语言:javascript
复制
(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)
EN

回答 1

Stack Overflow用户

发布于 2020-08-28 20:37:58

我不能100%确定您的问题是什么,但是WHERE子句看起来不正确。我期望:

代码语言:javascript
复制
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条件周围的圆括号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63628286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档