我正在尝试使用谷歌BigQuery的sample code。查询使用的是旧版SQL。
我在BigQuery query中设置了以下内容:
SELECT
a.name,
b.name,
COUNT(*) AS count
FROM (FLATTEN(
SELECT
GKGRECORDID,
UNIQUE(REGEXP_REPLACE(SPLIT(V2Persons,';'), r',.*', "))
name
FROM [gdelt-bq:gdeltv2.gkg]
WHERE DATE>20150302000000 and DATE < 20150304000000 and V2Persons like
'%Tsipras%'
,name)) a
JOIN EACH (
SELECT GKGRECORDID, UNIQUE(REGEXP_REPLACE(SPLIT(V2Persons,';'), r',.*', ")) name
FROM
[gdelt-bq:gdeltv2.gkg]
WHERE
DATE>20150302000000
AND DATE < 20150304000000
AND V2Persons LIKE '%Tsipras%')) b
ON
a.GKGRECORDID=b.GKGRECORDID
WHERE
a.name<b.name
GROUP EACH BY
1,
2
ORDER BY
3 DESC
LIMIT
250
但它会引发错误:
错误:在"“上的”“上遇到”“,第11行,第1列。应为:
发布于 2019-05-30 07:52:04
联接后有1到多个)
字符。具体地说,'%Tsipras%')) b
应该是'%Tsipras%') b
。大多数错误都是由于开头和结尾对不匹配,闭合次数太多而导致出现"Was expecting:“之后的错误。
发布于 2019-05-30 07:53:50
我不能100%确定这是否完全符合您的预期,但至少从语法角度来看,修复如下
SELECT a.name, b.name, COUNT(*) AS COUNT
FROM (FLATTEN(
SELECT GKGRECORDID, UNIQUE(REGEXP_REPLACE(SPLIT(V2Persons,';'), r',.*', ''))
name
FROM [gdelt-bq:gdeltv2.gkg]
WHERE DATE>20150302000000 AND DATE < 20150304000000 AND V2Persons LIKE
'%Tsipras%'
,name)) a
JOIN EACH (
SELECT GKGRECORDID, UNIQUE(REGEXP_REPLACE(SPLIT(V2Persons,';'), r',.*', ''))
name
FROM [gdelt-bq:gdeltv2.gkg]
WHERE DATE>20150302000000 AND DATE < 20150304000000 AND V2Persons LIKE
'%Tsipras%') b
ON a.GKGRECORDID=b.GKGRECORDID
WHERE a.name<b.name
GROUP EACH BY 1,2
ORDER BY 3 DESC
LIMIT 250
修复位于第3、10和14行
在第3行和第10行-我用''
替换了"
第14行-我删除了额外的)
我对第14行不太确定-因为可能实际上缺少了打开(
https://stackoverflow.com/questions/56369865
复制相似问题