我正在尝试运行一个非常简单的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
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
错误:SYNTAX_ERROR
第 6:38 行:无法解析列“storeloc”
尝试重复以下表达式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) ;
Run Code Online (Sandbox Code Playgroud)
尽管 MySQL 允许 的列别名GROUP BY,但并非所有数据库都这样做。我猜你并没有真正使用MySQL。