繁体   English   中英

如何编写 SQL 查询来查找该列中每个值的平均值?

[英]How to write a SQL query to find average of each value in that column?

这是我的输入表参考:input_table。

我需要像 ref: output_table 这样的输出表

输入表:

depname   | empno | salary |
----------+-------+--------+
develop   |    11 |   5200 |
develop   |     7 |   4200 |
develop   |     9 |   4500 |
develop   |     8 |   6000 |
develop   |    10 |   5200 |
personnel |     5 |   3500 |
personnel |     2 |   3900 |
sales     |     3 |   4800 |
sales     |     1 |   5000 |
sales     |     4 |   4800 |

输出表:

depname   | empno | salary | avg_salary |
----------+-------+--------+------------+
develop   |    11 |   5200 |       5020 |
develop   |     7 |   4200 |       5020 |
develop   |     9 |   4500 |       5020 |
develop   |     8 |   6000 |       5020 |
develop   |    10 |   5200 |       5020 |
personnel |     5 |   3500 |       3700 |
personnel |     2 |   3900 |       3700 |
sales     |     3 |   4800 |       4867 |
sales     |     1 |   5000 |       4867 |
sales     |     4 |   4800 |       4867 |

任何人都可以为此编写 SQL 查询吗?

您想使用avg()作为窗口函数

select depname, empno, salary,
       avg(salary) over (partition by depname) as avg_salary
from t;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM