mysql - BigQuery 语法错误

标签 mysql google-bigquery

我在 BigQuery 中收到此错误: 错误:语法错误:2:1 预期:查询结束但得到:“CASE”

我正在使用的查询是:

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。

最佳答案

我认为 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;

关于mysql - BigQuery 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27607864/

相关文章:

mysql - 如何控制具有 n...可选属性的元素库存?

Mysql:使用选择和局部变量更新

mysql - 使用多个子查询加速 mysql 查询

sql - 使用 mysql 正则表达式验证我的 google bigquery 数据库中的电子邮件地址

sql - 使用间隙和孤岛查找连续的小时/日期- SQL/BigQuery

php - 如何转换 HH :MM:SS to H:SS AM/PM from SQL database with TIME_FORMAT

php - 类函数(带有 while(mysql_fetch_assoc) 、 in_array 和 json_decode() 方法)在 foreach 中无法正常工作

python - BigQuery API 查询作业针对现有数据集返回 404

sql - 将点击非规范化为 session 级数据的最有效方法是什么?

google-bigquery - pyspark.sql.utils.IllegalArgumentException : requirement failed: Temporary GCS path has not been set