獲得只生產一種產品類型和多種型號的製造商。MYSQL中的HAVING和GROUP BY有什麼問題?
錯誤答案:
`SELECT` `DISTINCT` maker
from Product `GROUP BY` maker
`HAVING` (`COUNT`(`DISTINCT` TYPE) = 1 `AND` `COUNT`(`DISTINCT` model) > 1)
正確答案:
`SELECT` `DISTINCT` maker, type
`from` Product
`WHERE` maker in (SELECT DISTINCT maker from Product
`GROUP BY` maker `HAVING` `COUNT`(`DISTINCT` TYPE) = 1 `AND` `COUNT`(model) > 1)
簡短數據庫描述 「計算機公司」:
數據庫方案由四個表: 產品(製造商,型號,型號) PC(代碼,型號,速度,RAM,HD,CD,價格) 筆記本電腦(代碼,型號,速度,RAM,HD,屏幕,價格) 打印機(代碼,型號,顏色,型號,價格) 產物表包含製造商,型號和產品類型(「PC」,「筆記本」或「打印機」)的數據。假定產品表中的型號對於所有制造商和產品類型都是唯一的。 PC表格中的每臺個人計算機都用一個唯一的代碼進行唯一標識,並且還通過其型號(外鍵指產品表),處理器速度(以MHz爲單位) - 速度字段,RAM容量(以Mb爲單位) ,硬盤驅動器容量(Gb) - 高清,CD-ROM速度(例如'4x') - cd及其價格。筆記本電腦桌與PC桌類似,不同之處在於它不包含CD-ROM速度,而是包含屏幕尺寸(英寸) - 屏幕。對於Printer表中的每個打印機型號,其輸出類型('y'表示顏色,'n'表示單色) - 色域,打印技術('Laser','Jet'或'Matrix') - 類型和價格被指定。
祝您的功課!請隨時回來告訴我們,如果你成功做到了! –
搞笑的是 「正確」 的答案也是錯誤的...'SELECT DISTINCT製造商,類型...... GROUP BY壺....'類型不GROUP BY內命名 - >參閱:https:// WWW .psce.com/blog/2012/05/15/mysql-errors-do-you-use-group-by-incorrect/ –