코린이의 소소한 공부노트

[LeetCode/Easy] 1050. Actors and Directors Who Cooperated At Least Three Times 본문

코딩테스트 풀이/SQL

[LeetCode/Easy] 1050. Actors and Directors Who Cooperated At Least Three Times

무지맘 2023. 4. 4. 22:58

1. Input

1) Table: ActorDirector (pk = timestamp)

 

2. Output

1) 최소 3번 이상 협업한 배우와 감독의 아이디를 출력

- 순서는 상관 없다.

 

3. Example

 

4. Code

1) 첫 코드(2023/04/04)

select actor_id, director_id
from (
    select actor_id, director_id, count(*) cnt
    from ActorDirector
    group by actor_id, director_id
) a
where cnt>=3;

- 너무너무 느림

2) having절을 이용해본 코드(2023/04/04)

select actor_id, director_id
from ActorDirector
group by actor_id, director_id
having count(timestamp)>=3;

- 약간 빨라지긴 했으나, 그래도 느린편

- group by와 where를 함께 쓰는 것이 성능에는 도움이 된다고 한다.