民國105年 第1梯次 網頁設計乙級 學科

第26題

資料表S t a f f 之欄位屬性定義:I d I N T E G E R 、N a m e C H A R ( 20 ) 、D e p t I N T E…

題目

資料表S t a f f 之欄位屬性定義:I d I N T E G E R 、N a m e C H A R ( 20 ) 、D e p t I N T E G E R 、J o b C H A R ( 20 ) 、Y e a r s I N T E G E R 、 S a l a r y D E C I M A L ( 10 , 2 ) 、C o m m D E C I M A L ( 10 , 2 ) ; 欲表列「至少有一個員工的酬金( C o m m ) 在5 , 000 元以上」之部門編號及員工總數,最能 符合要求之S Q L 語法為何?

  1. (1) S E L E C T D e p t , C O U N T ( * ) F R O M S t a f f G R O U P B Y D e p t H A V I N G C o m m > 5000
  2. (2) S E L E C T D e p t , C o m m , C O U N T ( i d ) F R O M S t a f f W H E R E C o m m > 5000 G R O U P B Y D e p t , C o m m
  3. (3) S E L E C T D e p t , C O U N T ( * ) F R O M S t a f f G R O U P B Y D e p t H A V I N G M A X ( C o m m ) > 5000
  4. (4) S E L E C T D e p t , C O U N T ( * ) F R O M S t a f f W H E R E C o m m > 5000 G R O U P B Y D e p t , C o m m

官方答案

(3) S E L E C T D e p t , C O U N T ( * ) F R O M S t a f f G R O U P B Y D e p t H A V I N G M A X ( C o m m ) > 5000

解析

題意是找出「至少有一位員工酬金超過 5000」的部門,統計對象為部門,故以 GROUP BY Dept 分組,再用 HAVING MAX(Comm)>5000 篩選出符合的部門,COUNT(*) 即該部門員工總數。若寫 WHERE Comm>5000,會先剔除低酬金員工,COUNT(*) 只算到高酬金者而非全部門人數;GROUP BY Dept, Comm 會依酬金再細分,得不到部門總數;HAVING Comm>5000 直接引用非聚合欄位,在嚴格模式下無法執行。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料