inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[백문이불여일타] 데이터 분석을 위한 중급 SQL

GROUP BY 해커랭크 문제풀이

가장 큰 값을 가져오는 다른 방법도 있을까요?

776

오민영

작성한 질문수 6

0

안녕하세요 선생님~! 강의를 듣다 이 문제를 다르게 푸는 방법도 있을까 궁금해져서 질문드립니다.

1.

스텝별로 풀이는 설명해주실 때, 3.earning 중에 가장 큰 값을 가져온다 라는 부분은 limit 1로 큰 값만 출력되게 해주셨는데요. 혹시 이 부분을 select 절에서 다른 구문으로 출력하게 하는 것도 가능할까요?

select max(salary*months as earnings), count(*)
from employee
group by earnings

(쿼리를 돌려보았을 땐 잘못된 답이라고 나오긴 하네요..ㅎㅎ)

2.

아래 쿼리 중에 잘못 작성된 내용이 있을까요? 똑같은 쿼리로 적은 것 같은데 계속 잘못된 답이라고 응답이 뜨네요..!

/*
select salary * months AS earnings, count (*)
from Employee
group by earnings
order by earnings desc
limit 1 
*/

sql

답변 1

1

지식공유자 J

  1. SELECT와 MAX를 사용해서 구하려면 SELECT 절이 하나가 더 필요합니다.
    이렇게 쿼리 안에 또 다른 쿼리를 쓰는 것을 서브쿼리라고 합니다.
    저희 커리큘럼에서는 서브쿼리를 고급반에서 다룹니다만 아래 쿼리와 주석을 참고하면 이해가 되실 거에요.

    SELECT salary * months AS earnings, COUNT()
    FROM employee
    GROUP BY earnings
    HAVING earnings = (-- 1. salary * months 의 최대값 구하기
                       SELECT MAX(salary * months) 
                       FROM employee)  -- 2. 1에서 구한 최대값과 동일한 값을 갖는 row를 추출

     

  2. count (*) 에서 count와 괄호 사이를 붙여서 count(*) 라고 작성하면 잘 작동됩니다.

리트코드 1280. Students and Examinations

0

94

3

16강 LEFT JOIN 리트코드 (183. Customers Who Never Order) 관련 질문

0

103

2

African Cities 문제관련 질문

0

65

1

SQL 코딩테스트 질문

0

237

1

HACKER RANK에서 문제찾기

0

109

2

강의 자료 다운로드

0

101

2

Asian population 문제가 없어요

0

88

2

INNER JOIN 에서 A.키 쓸때 빨간 색 나오고 'dause'

0

77

2

별칭 관련해서 질문 있습니다.

0

88

2

rising temperature 문제 질문

0

108

2

해커랭크 TOP EARNERS 문제 질문

0

110

1

ON 뒤에 질문

0

106

2

INNER JOIN 질문. 강의와 결과값이 다릅니다.

0

211

3

END, 뒤에 * 붙이면 에러가 뜹니다

1

213

2

CustomerID가 중복되서 나타나요

0

242

3

별칭이 전체 테이블을 못 불러와요.

0

152

2

CASE WHEN 쿼리 오류 문의

1

342

3

CASE문제풀이 질문

0

133

1

Customers Who Never Order 풀다가 Alias관련 질문사항

0

141

1

Average Population 질문

0

143

1

Revising Aggregations - The Count Function 질문

0

110

1

Average Population of Each Continent 에대해서 질문

0

199

3

w3schools 에서 쿼리 작성 질문

0

166

1

INNER JOIN 할 때 NULL 값이 안보일 수도 있나요?

0

332

1