[考題] 資料庫應用 102年 第四題(資訊處理)

看板Examination作者 (PS)時間9年前 (2015/07/07 17:36), 9年前編輯推噓5(5011)
留言16則, 6人參與, 最新討論串1/1
資訊處理 資料庫應用 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

07/07 20:36, , 1F
你會這樣覺得是沒錯但也就表示你對GROUP BY的用法不熟
07/07 20:36, 1F

07/07 20:46, , 2F
基本上select時,就決定了group by
07/07 20:46, 2F

07/07 20:51, , 3F
若要 by 產品.代號,一開始select 就要 產品.代號
07/07 20:51, 3F

07/07 21:00, , 4F
你從哪裡群聚就要把他顯示出來啊..
07/07 21:00, 4F

07/07 21:01, , 5F
而且這題你也考慮的太周到了XD
07/07 21:01, 5F

07/07 22:16, , 6F
考試應該以sql92標準語法為主,你提到的情況在sql99
07/07 22:16, 6F

07/07 22:16, , 7F
印象中有針對主鍵還是功能相依做一點改善,所以在Sql
07/07 22:16, 7F

07/07 22:16, , 8F
99你提出的語法應該是能跑的。但是在sql92會顯示Erro
07/07 22:16, 8F

07/07 22:16, , 9F
r(憑印象回的 有錯別怪我啊囧 考前沒時間幫你確認一
07/07 22:16, 9F

07/07 22:16, , 10F
下..)
07/07 22:16, 10F

07/07 23:08, , 11F
你說的沒錯 但你要group by 編號 名目才能select 編號
07/07 23:08, 11F

07/07 23:08, , 12F
名目 avg 你會多一個編號
07/07 23:08, 12F

07/07 23:22, , 13F
感謝各位強者熱情回應 我大概知道了 再次感謝
07/07 23:22, 13F
※ 編輯: okara (114.44.157.29), 07/07/2015 23:24:01 ※ 編輯: okara (114.44.157.29), 07/08/2015 07:36:01

07/08 07:38, , 14F
對不起,應該是group by 代號 不是group by編號 之前打錯
07/08 07:38, 14F

07/14 20:18, , 15F
課本說:SELECT子句裡所列出的除了彙總函數外,
07/14 20:18, 15F

07/14 20:18, , 16F
所有欄位必須出現在GROUP BY子句裡。
07/14 20:18, 16F
文章代碼(AID): #1LcvsIBH (Examination)