題組內容

一、某一家圖書公司的關聯式資料庫(Relational Database)包含了作者、圖書及寫書三個表格(Table)。作者表格記錄作者的編號與姓名;圖書表格記錄圖書編號、書名、西元出版年份(例如,2018)、銷售數量(例如,5000);寫書表格記錄作者與圖書的關係,為多對多的關係。這三個表格的關聯綱要(Relational Schema)如下所示: 
作者(作者編號、作者姓名) 
圖書(圖書編號、書名、出版年份、銷售數量) 
寫書(作者編號圖書編號
有底線的屬性(Attribute)為該表格之主鍵(Primary Key);例如,寫書表格之主鍵為作者編號與圖書編號兩個屬性的組合。寫書表格有作者編號與圖書編號兩個外來鍵,分別參照作者表格與圖書表格的主鍵。針對下列三個查詢問題,請各寫出一個SQL指令來進行查詢。

(三)列出寫過的書之總銷售數量超過十萬本的每一位作者之作者姓名。

詳解 (共 2 筆)

111年警特高普中鋼調查皆上榜
111年警特高普中鋼調查皆上榜
詳解 #5372538
2022/03/09
select A.作者姓名from 寫書...
(共 128 字,隱藏中)
前往觀看
hchungw
hchungw
詳解 #6119391
2024/06/04
SELECT 作者.作者姓名
FROM 作者
JOIN 寫書 ON 作者.作者編號 = 寫書.作者編號
JOIN 圖書 ON 寫書.圖書編號 = 圖書.圖書編號
GROUP BY 作者.作者編號, 作者.作者姓名
HAVING SUM(圖書.銷售數量) > 100000;

說明

  • SELECT 作者.作者姓名:選取作者表格中的作者姓名這個屬性。
  • FROM 作者:指定查詢來源於作者表格。
  • JOIN 寫書 ON 作者.作者編號 = 寫書.作者編號:將作者表格和寫書表格進行連接,條件是作者編號相同。
  • JOIN 圖書 ON 寫書.圖書編號 = 圖書.圖書編號:將寫書表格和圖書表格進行連接,條件是圖書編號相同。
  • GROUP BY 作者.作者編號, 作者.作者姓名:將記錄按作者編號和作者姓名進行分組。
  • HAVING SUM(圖書.銷售數量) > 100000:設定條件,篩選出總銷售數量超過十萬本的作者,即計算每個作者的圖書銷售總數量,並只保留總數量大於十萬本的記錄。

這條查詢語句將返回所有寫過的書之總銷售數量超過十萬本的作者的姓名。

私人筆記 (共 2 筆)

54088
54088
私人筆記 #3646382
2021/10/15
SELECT 作者姓名 FROM 作者,...
(共 113 字,隱藏中)
前往觀看
嵐路
嵐路
私人筆記 #3673123
2021/10/26
SELECT 作者姓名 FROM 作者 ...
(共 122 字,隱藏中)
前往觀看