題組內容
二、假設現有如下點歌紀錄的關聯式資料庫,請使用 SQL 回答相關的子問題。(每小題 5 分,共 20 分) Publisher(nation, company_ ID, name) PK: nation+company_ID
Song(song _ ID, name, language, type, publish_year, nation, publisher_ID)
PK: song_ID
FK: nation+publisher_ID ref. Publisher(nation+company_ID)
Member(mobile, nickname, gender) PK: mobile
OnDemand_Record(member_ ID, song _ ID, date_time)
PK: (member_ID, song_ID, date_time)
FK: member_ID ref. Member(mobile)
FK: song_ID ref. Song(song_ID)
註:欄位名稱如相同或顯示非欄位名稱,請使用 Alias 重新命名顯示的欄位
(一)請列出 2023 年,點播率最高前兩名的英文歌曲名、發行者名、發行年份及點播次數,結果請依點播次數多至少排列顯示。
詳解 (共 1 筆)
詳解
SELECT
S.name AS song_name,
P.name AS publisher_name,
S.publish_year,
COUNT(*) AS 點播次數
FROM
OnDemand_Record ODR
JOIN
Song S ON ODR.song_ID = S.song_ID
JOIN
Publisher P ON S.nation = P.nation AND S.publisher_ID = P.company_ID
WHERE
YEAR(ODR.date_time) = 2023
AND S.language = '英文'
GROUP BY
S.song_ID, S.name, P.name, S.publish_year
ORDER BY
點播次數 DESC
LIMIT 2;
S.name AS song_name,
P.name AS publisher_name,
S.publish_year,
COUNT(*) AS 點播次數
FROM
OnDemand_Record ODR
JOIN
Song S ON ODR.song_ID = S.song_ID
JOIN
Publisher P ON S.nation = P.nation AND S.publisher_ID = P.company_ID
WHERE
YEAR(ODR.date_time) = 2023
AND S.language = '英文'
GROUP BY
S.song_ID, S.name, P.name, S.publish_year
ORDER BY
點播次數 DESC
LIMIT 2;