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

Table of Contents


資訊處理 資料庫應用 102年 第四題


4. 已知有一手機製造公司資料庫綱目如下:

工程師(編號,名字,年齡,性別,薪水)
產品(代號,名目,年銷量,售價)
設計(編號,代號)
請用SQL回答下列問題:

(三)針對年銷售量高於20萬隻的每一項產品,
且參與設計此產品的工程師數目不超過5人的,
列出其產品名目和工程師的平均薪水。

Ans:

(三)
(高上解答)

SELECT 名目,AVG(薪水)
FROM 產品,工程師,設計
WHERE 產品.代號=設計.代號
AND 設計.編號=工程師.編號
AND 產品.年銷售量>200000
GROUP BY 名目
HAVING COUNT(工程師.編號) <= 5

(我的疑問是)

如果GROUP BY用名目的話,這樣一旦代號不同而名目相同,就會一起計算。
這樣結果不就跟題目所要求的不一樣。

所以這裡GROUP BY,是不是應該用 GROUP BY 產品.代號?

請版上強者為我解惑 感恩



--

All Comments

Agnes avatarAgnes2015-07-09
你會這樣覺得是沒錯但也就表示你對GROUP BY的用法不熟
Oscar avatarOscar2015-07-11
基本上select時,就決定了group by
Oliver avatarOliver2015-07-15
若要 by 產品.代號,一開始select 就要 產品.代號
Gilbert avatarGilbert2015-07-19
你從哪裡群聚就要把他顯示出來啊..
Connor avatarConnor2015-07-23
而且這題你也考慮的太周到了XD
Connor avatarConnor2015-07-26
考試應該以sql92標準語法為主,你提到的情況在sql99
印象中有針對主鍵還是功能相依做一點改善,所以在Sql
99你提出的語法應該是能跑的。但是在sql92會顯示Erro
r(憑印象回的 有錯別怪我啊囧 考前沒時間幫你確認一
下..)
Heather avatarHeather2015-07-28
你說的沒錯 但你要group by 編號 名目才能select 編號
名目 avg 你會多一個編號
Elizabeth avatarElizabeth2015-07-30
感謝各位強者熱情回應 我大概知道了 再次感謝
Tristan Cohan avatarTristan Cohan2015-07-31
對不起,應該是group by 代號 不是group by編號 之前打錯
Ursula avatarUrsula2015-08-02
課本說:SELECT子句裡所列出的除了彙總函數外,
所有欄位必須出現在GROUP BY子句裡。