我有3名员工与相同的部门。我想找到他们的平均工资的基础上,前面的行。
举个例子
Employee_id department_id salary avg(salary) 101 1 5000 5000 102 1 10000 7500 103 1 15000 10000
这就像对于第一个薪水的部门id为1,我们发现员工id为101的平均值为5000,对于相同的部门id为1,对于员工ID为102,我们找到了按部门id分组的2个值的平均值。因此平均值为 (10000 5000) /2 = 7500
但对于员工id为103的情况,部门id为1,并与上述三个金额值一起分组。因此,平均工资为(10000 5000 15000)/3=10000
要求是我被要求使用query_partition_clause和order_by_clause。
因此,我尝试如下,
select avg(salary) OVER (partition by department_id ORDER BY department_id ) salary, department_id, salary from employee
但我总是通过考虑3个数据值的部门来获得值。
从今以后,有人能帮助解决这个问题吗?
非常感谢您的帮助。
SELECT EMPLOYEE_ID,
DEPARTMENT_ID,
SALARY,
(SELECT AVG(SALARY)
FROM EMPLOYEES B
WHERE B.EMPLOYEE_ID <= A.EMPLOYEE_ID) AVG_SALARY
FROM EMPLOYEES A
GROUP BY EMPLOYEE_ID,
DEPARTMENT_ID,
SALARY
子查询可以通过过滤员工ID在查询本身中完成。我希望我在这方面有所帮助。
使用< code>ORDER BY salary(或< code>ORDER BY employee_id)而不是< code > ORDER BY department _ id :
Oracle设置:
CREATE TABLE employees ( Employee_id, department_id, salary ) AS
SELECT 101, 1, 5000 FROM DUAL UNION ALL
SELECT 102, 1, 10000 FROM DUAL UNION ALL
SELECT 103, 1, 15000 FROM DUAL;
查询:
SELECT e.*,
AVG( salary ) OVER ( PARTITION BY department_id ORDER BY salary ) AS avg_salary
FROM employees e
输出:
EMPLOYEE_ID | DEPARTMENT_ID | SALARY | AVG_SALARY ----------: | ------------: | -----: | ---------: 101 | 1 | 5000 | 5000 102 | 1 | 10000 | 7500 103 | 1 | 15000 | 10000
分贝
问题内容: 我想知道是否可以在一个SQL SERVER请求中获得总和的平均值, 尝试使用以下请求来执行此操作,但是它不起作用: 问题答案: 我认为您的问题需要一些解释。如果要取分组的总和,可以使用: 然后,如果要取该总和的平均值,则只需进行以下操作: 但是,您无法对外部查询进行分组,因为这将为您提供类似于第一个查询的结果。内部查询的结果已按分组。
问题内容: 说我有身份证。我将如何获得下一行或上一行? 问题答案: 这就是我用来查找上一个/下一个记录的方法。表格中的任何列都可以用作排序列,并且不需要联接或讨厌的技巧: 下一条记录(日期大于当前记录): 上一个记录(日期小于当前记录): 例:
问题内容: 如何找到当前正在运行的Python脚本的完整路径?就是说,我要做什么才能做到这一点: 问题答案: 不是您要找的东西。不要使用意外的副作用 是 永远 的脚本路径(如果事实上脚本已经调用) -见http://docs.python.org/library/sys.html#sys.argv 是 当前正在执行的 文件(脚本或模块)的路径。这是 偶然 一样的,如果它是从脚本访问的脚本!如果要将
我有以下格式的Apache Spark数据帧 我想在DataFrame中添加一个新列:PreviousPhaseName。此列应指示同一过程的前一个不同阶段。进程的第一阶段(具有最小ID的阶段)将与前一阶段一样具有。当一个阶段发生两次或两次以上时,第二次(第三次...)事件将具有相同的previousPhaseName,例如: 我不确定如何实施这一点。我的第一个方法是: 创建第二个空数据帧DF2
发个面筋攒人品 秋招的第一个面试,吓尿了 1、数组常用的方法 2、怎么判断数据类型 3、css怎么让一个元素在页面上消失。。。css真的菜,没答出来 4、路由守卫 5、vue2和vue3的响应式原理 6、vue2对象添加属性怎么实现响应式 7、拷打项目,实现思路 真想不起来了,就面了30min,菜鸡流泪 #24届软开秋招面试经验大赏#
写个面筋积累人品 话说还是太虚了,从华子特种兵回来以后,早上面平安的时候老脸通红(感觉那会烧得要晕过去了) 问的都比较基础 输入url后发生了什么 数组常用方法 盒子模型 接触过哪些前端应用场景 闭包以及使用场景 vue3有什么改进 css预处理器用过啥,有啥好处 怎么防止中间人 原型链 常用git操作 webpack以及其他打包工具用过啥 剩下的想不起来了,反正都是基础八股 面试官人很好,虽然说