Image

Easy 🔗1050. Actors and Directors Who Cooperated At Least Three Times

📝문제 요약

Table: ActorDirector

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| actor_id    | int     |
| director_id | int     |
| timestamp   | int     |
+-------------+---------+
timestamp is the primary key (column with unique values) for this table.

Write a solution to find all the pairs (actor_id, director_id) where the actor has cooperated with the director at least three times.

Return the result table in any order.

The result format is in the following example.

Example 1:

Input:
ActorDirector table:
+-------------+-------------+-------------+
| actor_id    | director_id | timestamp   |
+-------------+-------------+-------------+
| 1           | 1           | 0           |
| 1           | 1           | 1           |
| 1           | 1           | 2           |
| 1           | 2           | 3           |
| 1           | 2           | 4           |
| 2           | 1           | 5           |
| 2           | 1           | 6           |
+-------------+-------------+-------------+
Output:
+-------------+-------------+
| actor_id    | director_id |
+-------------+-------------+
| 1           | 1           |
+-------------+-------------+
Explanation: The only pair is (1, 1) where they cooperated exactly 3 times.


✏️문제 풀이

SELECT

SELECT actor_id, director_id
  • 배우가 감독과 최소 세 번 협력한 모든 쌍
    • actor_id : 협업한 배우 아이디
    • director_id : 협업한 감독 아이디

FROM

FROM ActorDirector
  • ActorDirector 테이블 조회

GROUP BY

GROUP BY actor_id, director_id
  • actor_iddirector_id 각각의 조합으로 그룹화

HAVING

HAVING COUNT(*) >= 3
  • 그룹별로 계산된 COUNT(*) 값을 기준으로 3개 이상인 경우에만 필터링


💯제출 코드

SELECT actor_id, director_id
FROM ActorDirector
GROUP BY actor_id, director_id
HAVING COUNT(*) >= 3

댓글남기기