Oracle SQL案例给出了错误消息
我正在尝试向查询中添加一个额外的列。基于平均工资,它应该写在下面或上面的栏中,但它不起作用。有什么问题Oracle SQL案例给出了错误消息,sql,oracle11g,Sql,Oracle11g,我正在尝试向查询中添加一个额外的列。基于平均工资,它应该写在下面或上面的栏中,但它不起作用。有什么问题 SELECT CONCAT(firstname, lastname) AS name FROM workers CASE WHEN salary < avg(salary) THEN 'BELOW' WHEN salary > avg(salary) THEN 'ABOVE' ELSE 'AVARAGE' END; 选择CONCAT(firstname,lastnam
SELECT CONCAT(firstname, lastname) AS name
FROM workers
CASE
WHEN salary < avg(salary) THEN 'BELOW'
WHEN salary > avg(salary) THEN 'ABOVE'
ELSE 'AVARAGE'
END;
选择CONCAT(firstname,lastname)作为名称
来自工人
案例
当工资<平均工资时,则“低于”
当工资>平均工资时,则“高于”
还有“AVARAGE”
结束;
案例属于选择
子句:
SELECT CONCAT(firstname, lastname) AS name
(CASE WHEN salary < avg(salary) THEN 'BELOW'
WHEN salary > avg(salary) THEN 'ABOVE'
ELSE 'AVERAGE'
END)
FROM workers;
选择CONCAT(firstname,lastname)作为名称
(当工资平均工资时,则“高于”
其他“平均”
(完)
来自工人;
这解决了第一个问题。下一个问题是,您有一个聚合函数,但没有聚合。您真正想要的似乎是一个分析函数:
SELECT CONCAT(firstname, lastname) AS name
(CASE WHEN salary < AVG(salary) OVER () THEN 'BELOW'
WHEN salary > AVG(salary) OVER () THEN 'ABOVE'
ELSE 'AVERAGE'
END)
FROM workers;
选择CONCAT(firstname,lastname)作为名称
(当工资<平均(工资)超过()时,则为“低于”
当薪资>平均(薪资)超过()时,则为“高于”
其他“平均”
(完)
来自工人;
说出它给您带来的错误会很有帮助。但是,谢谢你,这正是我想要的。你能解释一下“你有聚合功能但没有聚合”是什么意思吗?@dmbdnr。您的查询使用avg()
——以及其他列——但没有分组依据。