我正在尝试运行一个非常简单的 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/