看板 Examination 關於我們 聯絡資訊
資訊處理 資料庫應用 102年 第四題 4. 已知有一手機製造公司資料庫綱目如下: 工程師(編號,名字,年齡,性別,薪水) 產品(代號,名目,年銷量,售價) 設計(編號,代號) 請用SQL回答下列問題: (三)針對年銷售量高於20萬隻的每一項產品, 且參與設計此產品的工程師數目不超過5人的, 列出其產品名目和工程師的平均薪水。 Ans: (三) (高上解答) SELECT 名目,AVG(薪水) FROM 產品,工程師,設計 WHERE 產品.代號=設計.代號 AND 設計.編號=工程師.編號 AND 產品.年銷售量>200000 GROUP BY 名目 HAVING COUNT(工程師.編號) <= 5 (我的疑問是) 如果GROUP BY用名目的話,這樣一旦代號不同而名目相同,就會一起計算。 這樣結果不就跟題目所要求的不一樣。 所以這裡GROUP BY,是不是應該用 GROUP BY 產品.代號? 請版上強者為我解惑 感恩 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.44.157.29 ※ 文章網址: https://www.ptt.cc/bbs/Examination/M.1436261778.A.2D1.html ※ 編輯: okara (114.44.157.29), 07/07/2015 17:39:04
malowda: 你會這樣覺得是沒錯但也就表示你對GROUP BY的用法不熟 07/07 20:36
gunhello: 基本上select時,就決定了group by 07/07 20:46
gunhello: 若要 by 產品.代號,一開始select 就要 產品.代號 07/07 20:51
ko74652: 你從哪裡群聚就要把他顯示出來啊.. 07/07 21:00
ko74652: 而且這題你也考慮的太周到了XD 07/07 21:01
emstarbucks: 考試應該以sql92標準語法為主,你提到的情況在sql99 07/07 22:16
emstarbucks: 印象中有針對主鍵還是功能相依做一點改善,所以在Sql 07/07 22:16
emstarbucks: 99你提出的語法應該是能跑的。但是在sql92會顯示Erro 07/07 22:16
emstarbucks: r(憑印象回的 有錯別怪我啊囧 考前沒時間幫你確認一 07/07 22:16
emstarbucks: 下..) 07/07 22:16
lexus7310: 你說的沒錯 但你要group by 編號 名目才能select 編號 07/07 23:08
lexus7310: 名目 avg 你會多一個編號 07/07 23:08
okara: 感謝各位強者熱情回應 我大概知道了 再次感謝 07/07 23:22
※ 編輯: okara (114.44.157.29), 07/07/2015 23:24:01 ※ 編輯: okara (114.44.157.29), 07/08/2015 07:36:01
okara: 對不起,應該是group by 代號 不是group by編號 之前打錯 07/08 07:38
okara: 課本說:SELECT子句裡所列出的除了彙總函數外, 07/14 20:18
okara: 所有欄位必須出現在GROUP BY子句裡。 07/14 20:18