강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

KoKuMa님의 프로필 이미지
KoKuMa

작성한 질문수

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

3번 문제 풀이

max함수를 써서 풀지는 못하나요?

해결된 질문

작성

·

292

0

Select Case When mod(id,2) != 0 then id+1 When mod(id,2) = 0 then id-1 When id = max(id) then id-1 END as id , student From Seat Order by id

위와 같이 했는데

| id | student |
| -- | ------- |
| 2 | Abbot |

라는 결과를 내놓네요.

답변 1

0

지식공유자 J님의 프로필 이미지
지식공유자 J
지식공유자

Select Case When mod(id,2) != 0 then id+1 -- 홀수
            When mod(id,2) = 0 then id-1  -- 짝수
            When id = max(id) then id-1 END as id 

CASE 문을 위와 같이 작성해 주셨는데, 첫번째 줄(홀수 판단)과 두번째 줄(짝수 판단)에 의해 모든 id에게 값이 부여됩니다.
id가 1부터 5까지 홀수 개수로 존재할 경우, 마지막 값(홀수)인 5가 첫번째 줄에 의해 이미 값이 정해지기 때문에 세번째 줄까지 도달해서 판단받는 일이 없다는 뜻입니다. 그러므로 정답과는 다른 output이 반환됩니다.

KoKuMa님의 프로필 이미지
KoKuMa

작성한 질문수

질문하기