각 직원에 대해 가장 큰 판매를 찾고 직원의 이름을 표시하고 싶습니다. MySQL은, 그것은 매우 간단합니다 :Oracle SQL Query : 직원에게 가장 큰 판매 받기
select *
from employee, sale
where employee.id = sale.employee_id
group by employee_id
order by sale.total desc
이 꽤 많은 사람이 기대하는 것, 그것은 직원의 목록을 반환하고, 직원의 행과 최대 판매 기록을 돌려 끝날 것 않습니다.
그러나 Oracle에서는 group by 절이 사용될 때 그룹식이 아닌 열을 반환 할 수 없습니다. 이렇게하면 Oracle에서 내가 할 수있는 일을 "불가능"하게 만들 수 있습니까? 아니면 몇 가지 해결 방법이 있습니까? 어떤 종류의 서브 쿼리를 수행 할 수 있다고 생각하지만, 그렇게하기위한 또 다른 방법이 있는지는 잘 모르겠습니다.
당신이 당신의 쿼리에서 일을 당신이 선택할 수 있습니다 MySQL' 구문 설탕 '의 남용 그룹화 된 쿼리에서 그룹화되지 않은 임의의 값. 선택한 행이 가장 높은 판매가되는 것은 아닙니다. 문서 상태 : 이 기능을 사용할 때 각 그룹의 모든 행은 GROUP BY 부분에서 생략 된 열에 대해 동일한 값을 가져야합니다. 서버는 그룹에서 임의의 값을 반환 할 수 있으므로 모든 값이 동일하지 않으면 결과가 불확실합니다. http://dev.mysql.com/doc/refman/5.0/en/group-by-hidden-columns.html – Quassnoi