리트코드 177번 3번째 풀이 DISTINCT 와 LIMIT 의 순서
441
작성한 질문수 4
LeetCode 177 번에서 LIMIT, OFFSET 을 사용해서 문제를 풀라고 하셨을때
DISTINCT 와 LIMIT 를 같이 쓰셨던데 그것들 중 뭐가 먼저 작동하는지 작동 순서가 궁급합니다.
아래는 강사님의 풀이입니다
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
SET N = N-1;
RETURN (
SELECT DISTINCT Salary
FROM Employee
ORDER BY Salary DESC LIMIT 1 OFFSET N
);
END그리고 아래의 데이터가 input 이라고 생각해보면

처음 제 생각은 이랬습니다 ORDER BY -> LIMIT -> DISTINCT 순대로 실행된다면
N=2 일때 우선 ORDER BY Salary DESC 를 진행해도 Salary 값이 같으므로 100, 100 그대로일 것이고, 여기서 LIMIT 를 하면 1개만 가져와서 100 이 될겁니다. 거기서 DISTINCT 를 해도 100 이 될거고요
근데 결과가 그렇게 나오지 않는 걸 보면 위의 제가 생각했던 순서가 틀린거겠죠?
ORDER BY -> DISTINCT -> LIMIT 가 맞나요?
N = 2 일때 ORDER BY Salary DESC 를 진행해도 Salary 값이 같으므로 100, 100 그대로일 거고, 여기서 DISTINCT 를 하여 100 이 되고, LIMIT 를 하면 데이터가 1개이므로 2번째로 큰 Salary 를 구할 수 없어서 null 이 되는 것인가요?
ORDER BY, DISTINCT, LIMIT 의 작동 순서를 알고싶습니다
답변 1
순위 함수 연습 문제 - 스테디셀러 작가 찾기
0
88
1
문제 내용이 잘못된 것 같습니다.
0
59
2
서브쿼리 질문
0
61
2
[수업질문] 서브쿼리 > null데이터 avg사용 주의
0
73
1
서브쿼리는 언제 작성하는건가요?
0
69
1
안녕하세요 질문드립니다.
0
66
2
Top Earners 문제관련 질문
0
97
2
고급반 cheetsheet
0
150
2
196. Delete Duplicate Emails 좋은 코드 질문
0
143
1
a.id = 1과 b.id=1이 없어도 되는 이유
0
127
0
강의 플랫폼
0
199
3
리트코드 177번 function 풀이중 case when 활용을 위한 서브쿼리 구문을 제출 시 검증에 통과되지 않도록 보강된 듯 하네요
0
205
2
ERD 읽는법에 추가 질문 있어요
0
252
1
lead, lag로 풀이할 시 id 값이 존재하지 않는 경우의 오답
0
360
2
사용자정의함수
0
230
1
이 문제 inner join이 이해가 안됩니다.
0
298
1
평균 함수 사용할 때 주의점과 해결법
0
261
1
196. subquery로 풀 때, 궁금한 점
0
385
2
쿼리성능 질문드립니다.
0
315
1
리트코드 highest department salary 문제
0
260
2
The report 문제 order by부분 질문
0
271
2
리트코드 서브쿼리 문제 질문
0
422
1
DEPARTMENT HIGHEST SALARY 서브쿼리 문제 문의
0
237
1
서브쿼리의 활용사례 및 조인관련질문
0
287
1





