8/17 每日一題(MYSQL 找出演員和導演配合3次以上)
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.
# Write your MySQL query statement below
SELECT actor_id ,director_id
FROM ActorDirector
GROUP BY actor_id , director_id
HAVING COUNT(*) >= 3
#使用GROUP BY 將 actor_id 和 director_id 進行分組
#然後使用聚合函式(HAVING) 計算record出現3次以上的組合
-------------------參考解答
# Write your MySQL query statement below
select actor_id, director_id
from ActorDirector
group by actor_id, director_id
having count(timestamp)>=3-------------
# Write your MySQL query statement below
select actor_id,director_id from actordirector group by 1,2 having count(director_id)>=3#GROUP BY 1, 2 使用GROUP BY子句根據第一個和第二個欄位(也就是actor_id, director_id)進行分組,#將相同的組合放在同組
標籤: leetcode

0 個意見:
張貼留言
訂閱 張貼留言 [Atom]
<< 首頁