Не уверен 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 - так как это может быть открытие (
на самом деле отсутствует