mysql - 为什么此 SQL 给出列无法解析错误?

标签 mysql sql case

我正在尝试运行一个非常简单的 CASE...WHEN 语句:

SELECT userid, sum(end_time-start_time)/60 AS timespent_minutes, 
                    CASE WHEN webid = '324234' THEN 'CA'
                    ELSE 'Other' END AS storeloc
FROM time_spent_intervals
WHERE (ds = '2018-12-01')
GROUP BY userid, storeloc

但我收到以下错误:

Error: SYNTAX_ERROR
line 6:38: Column 'storeloc' cannot be resolved

最佳答案

尝试在 GROUP BY 中重复表达式:

SELECT userid, sum(end_time-start_time)/60 AS timespent_minutes, 
       (CASE WHEN webid = '324234' THEN 'CA' ELSE 'Other' END) AS storeloc
FROM time_spent_intervals
WHERE ds = '2018-12-01'
GROUP BY userid, (CASE WHEN webid = '324234' THEN 'CA' ELSE 'Other' END) ;

尽管 MySQL 允许为 GROUP BY 使用列别名,但并非所有数据库都这样做。我猜您并没有真正使用 MySQL。

关于mysql - 为什么此 SQL 给出列无法解析错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53735492/

相关文章:

MySQL Insert Into w/Select 查询包含 CASE WHEN

sql-server - 在内部 SELECT 语句中分配变量

php - 更新mysql中的多条记录

php - Mysqli 检索表打印标题而不是数据

python - 使用 Python 和 pandas 无法正确填充 MySQL 计数器列

sql - 为什么 SQL Server 不将索引用于非常相似的日期时间查询?

javascript - 通过回调设置玩家 ID 和用户名时遇到问题

mysql - 在不同于 MySQL 的 MS SQL Server 中更新内部连接?

sql - Postgres : one boolean true all other false check constraint?

mysql - SQL 中子查询中 CASE WHEN EXIST 的奇怪行为 (MySQL 5.5)