民國104年 第2梯次 網頁設計乙級 學科

第22題

某企業( E m p ) 有數十個部門( D e p t _ n a m e ) ,每個部門有數百人,吳總經理欲知道:「除了 部門主管( I s _ d e p…

題目

某企業( E m p ) 有數十個部門( D e p t _ n a m e ) ,每個部門有數百人,吳總經理欲知道:「除了 部門主管( I s _ d e p t _ m a n a g e r ) 之外,平均薪資( S a l a r y ) 在50 , 000 元( 含) 以上的部門有那 些?」,最能符合上述要求之S Q L 語法為何?

  1. (1) S E L E C T D e p t _ n a m e , A V G ( S a l a r y ) F R O M E m p W H E R E I s _ d e p t _ m a n a g e r = F A L S E G R O U P B Y D e p t _ n a m e H A V I N G A V G ( S a l a r y ) > = 50000
  2. (2) S E L E C T D e p t _ n a m e , A V G ( S a l a r y ) F R O M E m p W H E R E I s _ d e p t _ m a n a g e r = T R U E G R O U P B Y D e p t _ n a m e H A V I N G A V G ( S a l a r y ) > = 50000
  3. (3) S E L E C T D e p t _ n a m e , A V G ( S a l a r y ) F R O M E M P W H E R E I s _ d e p t _ m a n a g e r = F A L S E A N D A V G ( S a l a r y ) > = 50000
  4. (4) S E L E C T D e p t _ n a m e , A V G ( S a l a r y ) F R O M E m p W H E R E I s _ d e p t _ m a n a g e r = T R U E A N D S U M ( S a l a r y ) > = 50000 G R O U P B Y D e p t _ n a m e

官方答案

(1) S E L E C T D e p t _ n a m e , A V G ( S a l a r y ) F R O M E m p W H E R E I s _ d e p t _ m a n a g e r = F A L S E G R O U P B Y D e p t _ n a m e H A V I N G A V G ( S a l a r y ) > = 50000

解析

需求是排除部門主管後,依部門分組計算平均薪資,再篩選平均薪資達 50,000 元(含)的部門。SQL 執行順序上,WHERE 先過濾資料列,故以 Is_dept_manager=FALSE 排除主管;接著 GROUP BY Dept_name 分組;聚合條件須放在 HAVING,寫成 HAVING AVG(Salary)>=50000。選項 2 反而只取主管;選項 3 在 WHERE 使用聚合函數且未分組;選項 4 取主管並誤用 SUM。

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

官方資料