목록lead (2)
오랑우탄의 반란
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/wZCFy/btsIQx2J8Z4/nd1aLpYv5dAmtyFnTmkQQ0/img.png)
오늘도 오랑이는 문제를 풉니다. 626. Exchange Seats 풀이 과정이번 문제에서는 다양한 풀이를 살펴볼 예정입니다. 1 max()우선 첫번째 풀이입니다. 이 풀이는 id 번호를 변경해서 student 를 거기에 맞춰주는 형식입니다. id가 홀수인 경우, 1을 더해주고, id가 홀수인 경우 1을 빼줍니다. 마지막 id가 홀수인 경우 그대로 둬야 하기 때문에 그거에 대한 조건도 적어줍니다. select case when id = (select max(id) from seat) and id % 2 = 1 then id when id % 2 = 1 then id + 1 else id - 1 end as id, studentfrom seat ord..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cpUbGP/btsIDIwGQib/vUlTZYrpUyYXBiqPbGdoy1/img.png)
오늘도 오랑이는 문제를 풉니다. 180. Consecutive Numbers 풀이 과정처음에는 문제에서 요구한 조건을 말그대로 생각해서 having count() 를 사용해 풀고자 했는데 이것은 틀린 풀이입니다.이유는 l2.num - l1.num = 0 은 숫자를 출력하는 것이 아닌 boolean 값 즉 True/False 를 출력하는 것이기 때문에 적합하지 않기 때문입니다. having count(l2.num - l1.num = 0) >= 3 대신 아주 간단하게 self join 과 where 조건절을 활용해서 아래와 같이 풀 수 있습니다. 최종 코드select distinct l1.num as ConsecutiveNumsfrom logs l1 join logs l2 on l2.id - l1.id ..