阿摩線上測驗 登入

申論題資訊

試卷:111年 - 111 高等考試_二級_資訊處理:高等資料庫設計#111030
科目:高等資料庫設計
年份:111年
排序:0

題組內容

一、在某個圖書館的關聯式資料庫系統中,定義了如下的 BORROWER 表格:
BORROWER(ID, ISBN, Date)
該表格所記錄的借閱資料,包含借書者編號(ID)、書號(ISBN)和借 閱日期(Date)三個屬性,且這些屬性皆為字串(varchar)型態。假設 我們希望查詢出那些借書者所借閱的書籍數量,比借書者編號“A001”所 借閱的書籍多。請根據以下兩小題的指示,分別利用不同的方法達到所 求。若非使用 SQL 標準語法,請註明所使用的語法為那個軟體所支援。

申論題內容

(一)撰寫一個 SQL 查詢句,直接利用標準的“count”函數輸出所需的資料。 (10 分)

詳解 (共 1 筆)

詳解 提供者:hchungw
SELECT ID
FROM BORROWER
GROUP BY ID
HAVING COUNT(ISBN) > (
    SELECT COUNT(ISBN)
    FROM BORROWER
    WHERE ID = 'A001'
)

說明:

  1. 子查詢

    • SELECT COUNT(ISBN) FROM BORROWER WHERE ID = 'A001'
    • 這個子查詢計算借書者編號為 “A001” 的借閱書籍數量。
  2. 主查詢

    • SELECT ID FROM BORROWER GROUP BY ID HAVING COUNT(ISBN) > (...)
    • 這個主查詢將借閱書籍數量按借書者編號分組,並使用 HAVING 子句來篩選那些借閱書籍數量大於 “A001” 的借閱書籍數量的借書者編號。

這個查詢語句符合 SQL 標準,可以在大多數支持 SQL 的資料庫管理系統(如 MySQL、PostgreSQL、SQL Server、Oracle 等)中執行。