2017-02-14 2 views
0

저는 SqlPlus를 처음 사용하고 있으며 모든 부서에서 가장 높은 최저 평균 급여를 표시하려고합니다. 지금까지 가장 높은 연봉 만 표시 할 수 있었지만 가장 낮은 연봉도 표시 할 수 없었습니다. 가장 높은 값과 가장 낮은 값 표시 Sqlplus

는 지금까지

SELECT deptno AS "Dept. No", MAX(sal) AS "Salary" 
FROM emp e 
WHERE e.sal > (SELECT avg(sal) FROM emp) 
GROUP BY deptno; 

가지고 무엇을 내가 얻고 출력은

Dept. No Salary 
30   2850 
20   3000 
10   5000 

내가

Dept. No Salary 
30   2850 
30   950 
20   3000 
20   800 
10   5000 
10   1300 

아를 얻으려고 노력하고 있는데이 부서를 사용하고 있습니다 그리고 emp 테이블 샘플!

+0

모든 부서의 최고 평균 임금과 최저 임금은 무엇을 의미합니까? 각 부서의 평균 (각 부서는 평균이 하나)을 계산 한 다음이 모든 평균 (부서마다 하나씩)에서 가장 높은 값과 가장 낮은 값을 표시하십시오. – mathguy

+0

어떤 경우 든 : 작성한 쿼리는'where' 절을 가지며, 두 조건은'and'로 연결되며 두 조건은 서로 직접적으로 모순됩니다. 그래서 다른 것과 관계없이 0 행이 명확하게 선택됩니다. – mathguy

+0

@mathguy 나는 높은 것을 표시하고 낮은 것을 의미했다. 예를 들어; 최고치가 50 달러이고 최저치가 20 달러라고 가정 해 봅시다. 두 값을 모두 표시하고 싶습니다. 지금까지는 $ 50 가치 만 표시 할 수있었습니다. 예상 한 결과를 보여주기 위해 내 질문을 편집했습니다. – Catastrophe

답변

1

이 쿼리는 다른 사람이 같은 문제가있는 경우 나를 위해 작동했습니다! :)

SELECT deptno AS "Dept. No", MAX(sal) AS "Highest Salary", MIN(sal) AS "Lowest Salary" 
FROM emp 
GROUP BY deptno; 
+0

하하, "같은 문제"는 혼란 스러울 수 있습니다 :-) 작업은 쉽습니다 : 당신은 부서 당 최소 및 최대 급여를 원합니다. 그리고 이것은 거의 단어를 SQL로 변환합니다. "문제"는 당신이 대신 실제 임무와 관련이없는 몇 가지 평균 임금을 찾고 있다고 생각한다는 것입니다. –

관련 문제