2014-12-22 2 views
1

Я получаю эту ошибку в BigQuery: Ошибка: Ошибка синтаксиса в: 2: 1 ожидал: конец запроса, но получил: «ДЕЛО»BigQuery Ошибка синтаксиса

запрос, который я использую:

SELECT DISTINCT 

CASE 
    WHEN 
     t1.x<=t2.x 
    THEN 
     t1.x 
    ELSE 
     t2.x 
END id1, 

CASE 
    WHEN 
     t1.x<=t2.x 
    THEN 
     t2.x 
    ELSE 
     t1.x 
END id2 

FROM test1 t1 
CROSS JOIN test1 t2 
WHERE NOT t1.x = t2.x 

Работает в mysql, но не в BigQuery.

+0

если вы измените "END ID1" в "END AS ID1", что это меняет? – Leo

ответ

6

Я не думаю, что Bigquery поддерживает SELECT DISTINCT. Вместо этого следует использовать подзапрос и group by:

SELECT id1, id2 
FROM (SELECT (CASE WHEN t1.x <= t2.x THEN t1.x ELSE t2.x END) as id1, 
      (CASE WHEN t1.x <= t2.x THEN t2.x ELSE t1.x END) as id2 
     FROM test1 t1 CROSS JOIN 
      test1 t2 
     WHERE NOT t1.x = t2.x 
    ) t 
GROUP BY id1, id2; 
Смежные вопросы