首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL: where子句中的avg()函数

SQL: where子句中的avg()函数
EN

Stack Overflow用户
提问于 2021-06-05 18:38:17
回答 3查看 89关注 0票数 0

我想要sal (薪水)大于所有雇员的平均工资的所有雇员的工资,但是我得到错误“无效使用组函数”。如何在where子句中使用avg()函数?

代码语言:javascript
运行
复制
select   sal 
from emp
where sal> (avg(sal)) ;
EN

回答 3

Stack Overflow用户

发布于 2021-06-05 18:47:04

你不能在这样的WHERE子句中使用AVG。尝试此查询:

代码语言:javascript
运行
复制
SELECT sal FROM emp WHERE sal > (SELECT AVG(sal) FROM emp)
票数 0
EN

Stack Overflow用户

发布于 2021-06-05 18:47:09

您可能需要使用子查询:

代码语言:javascript
运行
复制
select   sal 
from emp
where sal> (select avg(sal) avgsal from emp) ;
票数 0
EN

Stack Overflow用户

发布于 2021-06-05 19:16:15

您可以将avg用作window function,这通常会对子查询产生更好的性能:

代码语言:javascript
运行
复制
select Sal from (
    select Sal, Avg(Sal) over() avgSal
    from Employees
)e
where Sal > avgSal
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67848679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档