작성
·
134
답변 1
0
안녕하세요 IIxxII님,
해당 문제에서는 직원들의 earnings 금액 별로 받고 있는 사원의 수를 구하고 그중에서 가장 높은 earnings를 가진 데이터만 뽑아오는 것을 조건으로 하고 있습니다.
HAVING 구문은 GROUP BY를 통해 묶인 각각의 그룹에 대해서 조건을 걸어 조건을 만족하는 그룹 데이터만 표시하게끔 필터링을 할 수 있는 구문인데요. HAVING을 통해서 그룹간의 비교를 하는 것은 어렵습니다.
ex) earnings = 1000 인 그룹만 필터링을 하는 것은 각 그룹에 대해 earnings가 1000인지 아닌지를 판단하면 되는 것이므로 필터링이 가능합니다.
그러나 어떤 그룹의 earnings 값이 가장 큰지, 또 그값과 같은 earnings를 가진 그룹이 무엇인지를 찾는 것은 HAVING 구문으로는 구할 수 없습니다.
ORDER BY, LIMIT를 이용하지 않고 문제 풀이를 하는 방법으로는 고급반에서 다루게 되는 개념인 서브쿼리를 이용하시는 방법도 있으니 참고해주시면 좋을 것 같습니다.
궁금증이 해소되셨길 바랍니다. 감사합니다.