해커뱅크 top earners 질문
260
작성한 질문수 5
안녕하세요, 해커뱅크 top earners 문제와 관련하여 질문드려요.
----------------------------------------------------
SELECT months*salary AS earnings
, count(earnings) -- 여기에 earnings를 카운트하고 싶어서 이렇게 넣었는데 자꾸 오류가 나더라구요, 왜 그런가요?
FROM employee
GROUP BY earnings
ORDER BY earnings DESC
LIMIT 1
----------------------------------------------------
----------------------------------------------------
SELECT MAX(months*salary) AS earnings, COUNT(earnings)
FROM employee
-- 이건 제가 짠 코드인데, 에러 이유를 잘 모르겠어요! 1) 맥스 연봉을 earnings라고 하고, 2) 그 값을 찾고 3) 그 값을 가진 사람들이 몇 명인지 카운트를 하면 될 것 같은데 에러가 뜨더라구요. 혹시 설명해주실 수 있나요?
----------------------------------------------------
감사합니다!
답변 2
1
헤아님, 안녕하세요!
1) MAX 연봉을 earnings라고 정의를 잘 해주셨어요.
2) 하지만, 이 MAX 연봉을 정보로 해서 데이터를 필터링 하는 부분을 생략하셨습니다.
헤아님의 아이디어대로 문제를 풀기 위해서는 서브쿼리라는걸 약간 사용해야 하는데요.
서브쿼리가 중급반 내용이 아니라 약간 어려우실 수 있지만 예시를 적어드릴게요.
SELECT MAX(months * salary), COUNT(name)
FROM employee
WHERE months * salary = (SELECT MAX(months * salary) FROM employee)
이렇게 쿼리 안에 쿼리를 넣어서, 최대 earnings를 가지는 사람들을 WHERE절에서 필터링을 해 준 후 카운트 함수를 사용하시면 됩니다 :) 서브쿼리가 사용법이 약간 복잡해서, 고급반에서 다루려고 하고요. GROUP BY를 사용해서 푸시는게 가장 직관적인 풀이라고 생각해요.
리트코드 1280. Students and Examinations
0
75
3
16강 LEFT JOIN 리트코드 (183. Customers Who Never Order) 관련 질문
0
89
2
African Cities 문제관련 질문
0
54
1
SQL 코딩테스트 질문
0
206
1
HACKER RANK에서 문제찾기
0
97
2
강의 자료 다운로드
0
90
2
Asian population 문제가 없어요
0
77
2
INNER JOIN 에서 A.키 쓸때 빨간 색 나오고 'dause'
0
68
2
별칭 관련해서 질문 있습니다.
0
79
2
rising temperature 문제 질문
0
98
2
해커랭크 TOP EARNERS 문제 질문
0
99
1
ON 뒤에 질문
0
95
2
INNER JOIN 질문. 강의와 결과값이 다릅니다.
0
196
3
END, 뒤에 * 붙이면 에러가 뜹니다
1
204
2
CustomerID가 중복되서 나타나요
0
234
3
별칭이 전체 테이블을 못 불러와요.
0
142
2
CASE WHEN 쿼리 오류 문의
1
325
3
CASE문제풀이 질문
0
125
1
Customers Who Never Order 풀다가 Alias관련 질문사항
0
138
1
Average Population 질문
0
130
1
Revising Aggregations - The Count Function 질문
0
104
1
Average Population of Each Continent 에대해서 질문
0
193
3
w3schools 에서 쿼리 작성 질문
0
159
1
INNER JOIN 할 때 NULL 값이 안보일 수도 있나요?
0
329
1





