資料庫基礎

銷售表格(門市, 金額)中有(A, 500)、(A, 700)、(B, 300)、(B, 400)、(C, 1200)、(D, 200)、(D, 900)共7筆資料列。SELECT 門市, SUM(金額) FROM 銷售 GROUP BY 門市 HAVING SUM(金額) >= 1000 的結果有幾筆資料列?

  1. A1筆
  2. B3筆
  3. C4筆
查看答案與解析

正確答案:B. 3筆

以 GROUP BY 門市 依門市分組後,合計分別為A:500 + 700 = 1200、B:300 + 400 = 700、C:1200、D:200 + 900 = 1100,共4個群組。HAVING SUM(金額) >= 1000 只保留合計在1000以上的群組,因此結果為A、C、D共3筆。1筆是像 WHERE 金額 >= 1000 這樣,在分組前以每筆資料列的金額篩選時的結果(只有C)。4筆是不加HAVING時的群組數。

  • A. 這是只選出單筆金額在1000以上之資料列(以WHERE篩選)時的結果。
  • B. 正確。合計在1000以上的是A(1200)、C(1200)、D(1100)共3筆。
  • C. 這是以HAVING篩選前的群組數。合計為700的B會被排除。
練習這個領域 前往領域頁面

相關計算工具

資料庫基礎的其他題目

  1. 員工表格(姓名, 部門, 薪資)有8筆資料列,各部門的薪資為:業務 320、280、350,研發 400、310,總務 260、300,企劃 330。SELECT 部門, COUNT(*) FROM 員工 WHERE 薪資 >= 300 GROUP BY 部門 HAVING COUNT(*) >= 2 的結果有幾筆資料列?
  2. 員工表格(員工編號, 姓名, 部門編號)有4筆資料列,部門編號依序為10、20、10、NULL。部門表格(部門編號, 部門名稱)有部門編號為10、20、30的3筆資料列。SELECT 員工.姓名, 部門.部門名稱 FROM 員工 INNER JOIN 部門 ON 員工.部門編號 = 部門.部門編號 的結果有幾筆資料列?
  3. 員工表格(員工編號, 姓名, 部門編號)有5筆資料列,部門編號依序為10、20、10、NULL、NULL。部門表格(部門編號, 部門名稱)有部門編號為10、20、30的3筆資料列。SELECT 部門.部門名稱, 員工.姓名 FROM 部門 LEFT OUTER JOIN 員工 ON 部門.部門編號 = 員工.部門編號 的結果有幾筆資料列?
  4. 表格R的欄位x有值為 1、1、2、3 的4筆資料列,表格S的欄位x有值為 1、1、2、4 的4筆資料列。SELECT * FROM R INNER JOIN S ON R.x = S.x 的結果有幾筆資料列?
  5. 客戶表格(客戶編號, 姓名)中有(C1, 青木)、(C2, 井上)、(C3, 上田)、(C4, 江藤)共4筆資料列。訂單表格(訂單編號, 客戶編號, 金額)中有(O1, C1, 3000)、(O2, C2, 8000)、(O3, C1, 6000)、(O4, C3, 2000)、(O5, C2, 9000)共5筆資料列。SELECT 姓名 FROM 客戶 WHERE 客戶編號 IN (SELECT 客戶編號 FROM 訂單 WHERE 金額 > 5000) 的結果有幾筆資料列?