작성
·
244
0
6분에 나오는 문제에서 아래와같이 하면 답이 안나오던데 왜 그런건가용? 뭐가 문제죠??
SELECT max(salary*months) , count(max(salary*months))
FROM employee
답변 1
0
적어주신 쿼리는 group by 없이는 동작하지 않으며, group by를 쓰더라도 이 방식으로는 문제의 정답을 구할 수 없습니다.
강의에서 소개한 order by와 limit을 이용한 쿼리가 아닌 다른 방법을 사용하시려면, 두 가지 쿼리가 필요합니다.
1. (salary * months) as earnings 를 기준으로 그룹을 나눠 각 그룹마다 데이터가 몇 개씩 들어있는 지를 구하는 쿼리
2. earnings 가 가장 큰 값인 그룹을 선택하는 쿼리
이렇게 하나의 쿼리 안에 또 다른 쿼리를 작성하는 것을 '서브쿼리'라 하고, 저희 커리큘럼에서는 고급반에서 다룹니다. 구글링을 통해서도 학습하실 수 있으니 참고 바랍니다.