① id로 그룹핑하면 100 / 200 / 999 세개
② having절에서 count(*) = 2 라는 조건이 있어서 200은 count가 3이기 때문에 탈락해서 100 / 999
③ order by (case when id = 999 then 0 else id end) 에서 id가 999이면 0으로 치환하기 때문에 100 / 0
따라서 0 먼저 정렬하기 때문에 999 / 100 출력
따라서 정답은 2번
order by문에 case when구문이 들어가다니...너무나도 생소한 문제였다
하지만 이해 완~
'기타' 카테고리의 다른 글
[sqld] 참조동작(Referential Action) (0) | 2024.03.01 |
---|---|
[sqld] 트랜잭션 4가지 특성 (원자성, 일관성, 고립성, 지속성) (0) | 2024.03.01 |
[sqld] 공백문자('')를 insert하는 경우 oracle vs sql server (0) | 2024.02.24 |
[sqld] 순위 관련 함수 (rank(), dense_rank(), row_number()) (0) | 2024.02.23 |
[sqld] null 이란? (연산, 정렬, 함수) (0) | 2024.02.21 |