这个 BigQuery 搜索错误的原因是什么?

What is the cause of this BigQuery search error?

   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

这是错误消息:语法错误:table 值函数调用的每个子查询参数必须括在括号中。要解决此问题,请将 SELECT... 替换为 [3:1]

处的 (SELECT...)

有问题的查询是在 BigQuery Legacy SQL 中编写的 - 因此请确保您 运行 在 Legacy 模式下使用它。其次 - 以下是稍作更正的版本(在 REGEXP_REPLACE 中错误地使用双引号而不是撇号)

#legacySQL
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