나는 급여가있는 직원 테이블이 있습니다. 저는 모든 종업원에 대해 월급 - 평균 (급여)을 기재하고 싶습니다. 누군가가 같은 SQL 쿼리를 도와주십시오 수 있습니다.집계 함수 적용 모든 열
-1
A
답변
2
당신이 사용하는 윈도우 기능을 수행 할 수 있습니다
select e.*,
(salary - avg(salary) over()) as diff
from employees e;
0
당신은 평균 급여와 함께 단일 행을 반환하는 인라인 뷰를 사용할 수 있습니다. 해당 행을 직원 테이블에 다시 결합하십시오. 이 같은
뭔가 :
SELECT e.emp_id
, e.salary
, e.salary - a.avg_salary
FROM employee e
CROSS
JOIN (SELECT AVG(t.salary) AS avg_salary
FROM employee t
) a
ORDER BY e.emp_id
0
그냥 몇 가지 다른 변화; 이미 게시 된 다른 것들은 DDL이나 샘플 데이터가 없거나 주어진 입력으로부터 예상되는 출력이 없다는 가정하에 우리가 원하는 출력을 정확하게 추측했다고 가정하면 그 목적을 상당히 잘 수행해야합니다.
계산 된 차이 이외에 평균 급여 [모든 행에 대한 평균값]를 포함 할 필요가없는 경우, 다음은 [소수 결과로 선택적 캐스팅으로 표시됨] 스칼라 subselect를 사용하여 값은 각 종업원 급여에서 뺄 :
select emp.*
, dec(salary - (select avg(salary)
from employee_table)
, 11, 0) as saldif
from employee_table as emp
또는 둘 차분 그 자체에 의해 열을 다시 스칼라 부속으로 평균 임금을 사용하지만 [명시 joined-에서 횡 참조 용으로 제공 할 to] 부질의; 다시, 옵션 진수 결과를 주조 :
select x.*
from table
(select avg(salary)
from employee_table
) as a (avgsal)
cross join lateral
(select emp.*
, dec(salary - avgsal , 11) as saldif
, dec(avgsal , 11) as salavg
from employee_table as emp
) as x
0
다른 솔루션)
with avgsalary as (
select avg(salary) avgsal from employee_table
)
select emp.*, case when emp.salary is null then cast(null as decimal) else round(emp.salary - avgs.avgsal, 2) end as diffsal, avgs.avgsal
from employee_table as emp cross join avgsalary avgs
0
그리고 심지어 다른 변형 :
이with EmpAvg (avgSalary)
as (SELECT avg(salary) from employee_table)
select e.*, a.avgSalary,
(e.salary - a.avgSalary) as diffAvg
from employee_table e cross join EmpAvg a
상응하는 결과를 줄 수있는 쿼리의 여러 형태가있을 수 있습니다 . (계산 된 값을 캐스팅하지 않았으므로 은 정확히이 아닙니다.
관련 문제
- 1. 자기 집계 함수를 전달하는 집계 함수 열
- 2. 기준을 취하기 전에 집계 함수 적용
- 3. 모든 행에 함수 적용
- 4. 행의 하위 집합에 집계 함수 적용
- 5. 집계 함수
- 6. 이맥스의 모든 버퍼에 함수 적용
- 7. 클래스의 모든 인스턴스에 함수 적용
- 8. 스칼라의 목록에서 모든 함수 적용
- 9. 구조체의 모든 문자열에 함수 적용
- 10. 모든 함수 인수에 php 함수 적용
- 11. 집계 함수 사용시 문제
- 12. 집계 함수
- 13. 집계 함수
- 14. 집계 함수
- 15. 집계 및 집계 루트 적용 방법
- 16. 테이블에 SQL 함수 적용 열 값
- 17. R Datatable, 하위 열 집합에 함수 적용
- 18. SQL의 열 집계
- 19. 다른 성공적인 집계 함수 일치에 해당하는 열 값을 선택하는 집계 함수
- 20. SQL 집계 함수
- 21. 열이 집계 함수
- 22. 히스토그램 나누기를 사용하여 두 번째 열 위에 함수 적용
- 23. SUMIFS 범위의 함수 적용
- 24. 별칭에 집계 함수 사용?
- 25. DataRow [] 집계 함수 C#
- 26. 다른 레코드의 집계 함수
- 27. 모든 행에 여러 IF 함수 적용
- 28. SELECT 문의 배열의 모든 요소에 함수 적용
- 29. 유형 수준의 레코드에있는 모든 필드에 함수 적용
- 30. 동일한 클래스의 모든 요소에 함수 적용