获得只生产一种产品类型和多种型号的制造商。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/ –