최대 평균을 찾는 방법
최대 평균 급여를 표시하려고 하는데, 효과가 없을 것 같습니다.
다음과 같이 표시할 평균 급여 목록을 얻을 수:
select worker_id, avg(salary)
from workers
group by worker_id;
그러나 최대 평균 급여 목록을 다음과 같이 표시하려고 할 때:
select max (avg(salary))
from (select worker_id, avg(salary)
from workers
group by worker_id);
작동하지 않습니다.잘못된 식별자 오류가 발생합니다.각 근로자의 평균 급여를 사용하여 각 근로자의 최대 평균을 구하려면 어떻게 해야 합니까?
감사해요.
집계 함수(예: avg)에서 생성된 열은 일반적으로 임의 이름을 가집니다.별칭을 사용하여 다음 항목을 선택합니다.
select max(avg_salary)
from (select worker_id, avg(salary) AS avg_salary
from workers
group by worker_id) As maxSalary;
select worker_id, avgsal
from
(
select worker_id, avg(salary) as avgsal
from workers
group by worker_id
)
where avgsal=(select max(avgsal)
from (select worker_id, avg(salary) as avgsal
from workers group by worker_id))
작업자 ID와 함께 가장 높은 평균이 표시됩니다.
여기에 설명된 대로 사용할 수 있습니다.
SELECT worker_id, AVG(salary)
FROM workers
GROUP BY worker_id
HAVING AVG(salary) = (SELECT MAX(AVG(salary)) FROM workers GROUP BY worker_id)
select worker_id, avg(salary)
from workers
group by worker_id
having avg(salary) = (select max(avgsal) from
(select worker_id, avg(salary) as avgsal
from workers
group by worker_id));
이것도 효과가 있을 것 같습니다.
다음과 같이 하위 쿼리 내의 열에 열 별칭을 추가하여 쿼리를 수정할 수 있습니다.
select max(avg_salary)
from (select worker_id, avg(salary) avg_salary
from workers
group by worker_id);
하지만, 만약에worker_id
작업자 테이블의 레코드를 고유하게 식별합니다. 이는 기능적으로 다음과 같습니다(간소화할 수 있음).
select max(salary) from workers;
WITH 조항을 사용하면 다음과 같이 수행할 수 있습니다.
with averagesal as (
select dept_id d_id, avg(sal) avgsal from emp_details group by dept_id)
select * from averagesal where avgsal = (select max(avgsal) from averagesal);
select max(a.high)Avg_highest_salary,
e.dept
from (
select avg(salary) high,dept from emp group by dept) a,
emp e
where a.dept = e.dept
group by e.dept
order by max(a.high) desc
그것은 높은 평균 최고 연봉을 뎁트와 함께 먼저 보여줄 것입니다.
부서와 함께 급여를 표시하고 싶지 않으면 이것을 사용할 수 있습니다.
select max(avg(salary)) max_avg_salary
from emp
group by dept;
select Dep_name
from
(
select Dep_name , avg(Salary) as avgsal
from salary
group by Dep_name
) sal1
where avgsal=(select max(avgsal)
from (select Dep_name , avg(salary) as avgsal
from salary group by Dep_name) sal2)
다음과 같은 방법을 시도해야 합니다.
select avg(salary) as max_avg_salary from Salaries group by emp_no order by avg(salary) desc limit 1;
https://stackoverflow.com/a/8050885/12190487 에 다음 오류가 표시됩니다.
ER_DERIVED_MUST_HAVE_ALIAS: Every derived table must have its own alias
선택할 새 양식 열에 별칭 사용
select max(avg_salary)
from (select worker_id, avg(salary) AS avg_salary
from workers
group by worker_id) as avg ;
저는 잘 해결됐어요.
from (select avg(salary) AS avg_salary
from employees
group by Name) AS T;
이러한 방식으로 첫 번째 행을 평균 찾기를 기준으로 내림차순으로 정렬할 수 있습니다.
select top 1 worker_id, avg(salary) as avgsalary
from workers
group by worker_id
order by avgsalary desc
select * from (select avg(sal) over (partition by deptno ) avrg,deptno from emp
order by avrg desc) where rownum<2;
위의 것을 시도해 보세요.
다음은 이전 답변에서 영감을 얻은 worker_id를 가져오는 방법입니다.
SELECT worker_id, MAX(avg_salary)
FROM (SELECT worker_id, AVG(salary) AS avg_salary
FROM workers
GROUP BY worker_id);
이 작업은 단일 작업으로도 수행할 수 있습니다.select
문(둘 다 포함)max
그리고.avg
) 이렇게
select max(avg(salary)) max_avg_salary
from workers
group by worker_id;
언급URL : https://stackoverflow.com/questions/8050854/how-to-find-maximum-avg
'programing' 카테고리의 다른 글
화력 기지 내 자유 계획의 제한 (0) | 2023.07.10 |
---|---|
"org.springframework"를 호출할 수 없습니다.web.servlet.mvc.condition."this.condition"이(가) null이기 때문에 PatternsRequestCondition.getPatterns()"입니다. (0) | 2023.07.10 |
import pymono로 인해 'ImportError: cannot name BSON'이 발생합니다.당신은 어떻게 수입 오류를 고칩니까? (0) | 2023.07.10 |
PyPy가 표준 Python에 포함되지 않은 이유는 무엇입니까? (0) | 2023.07.10 |
특정 커밋까지 당김 (0) | 2023.07.10 |