在GCP中使用"GDELT“数据库进行编程时,我遇到了一个问题,希望您能帮助我解决这个问题。
我想编写一个代码,数据库将检查在以色列和阿拉伯国家签署“亚伯拉罕协定”的日子里,媒体与谁打交道最多的人。
SELECT
V2Persons,
COUNT(1) AS count
FROM (
SELECT
UNIQUE(REGEXP_REPLACE(SPLIT(V2Persons,';'), r',.*', ")) V2Persons
FROM
`gdelt-bq.gdeltv2.gkg_partitioned`
WHERE
DATE>20200914000000
AND DATE < 20200916000000
AND LOWER(AllNames) LIKE '%Abraham Accords%' )
GROUP BY
Persons
ORDER BY
2 DESC
LIMIT
300你能告诉我代码的问题是什么以及如何解决吗?
发布于 2021-06-27 18:18:08
这里有许多问题,最简单的一步一步地调试,使用WITH语句并获取一些数据。
所以我把嵌套查询移到WITH子查询。没有唯一的功能,我已经删除了。然后,SPLIT函数返回一个数组,不能只调用数组上的REGEX函数,数组首先必须是UNNEST'ed。
WITH persons AS (
SELECT SPLIT(gkg.V2Persons,';') pers_arr
FROM
`gdelt-bq.gdeltv2.gkg_partitioned` gkg
WHERE
DATE > 20200914000000 AND DATE < 20200916000000 AND
LOWER(AllNames) LIKE '%abraham accord%'
)
SELECT REGEXP_REPLACE(V2Persons, r',.*', '') V2Persons, COUNT(1) AS count
FROM persons pers, UNNEST(pers.pers_arr) V2Persons
GROUP BY V2Persons
ORDER BY 2 DESC LIMIT 300;https://stackoverflow.com/questions/68107415
复制相似问题