10-8 5-3 查询生产最高速度的计算机(PC或便携式电脑)厂商
本题目要求编写SQL语句,
查询生产最高速度的计算机(PC或便携式电脑)厂商,查询结果按照厂商升序排列。
提示:请使用SELECT语句作答。
表结构:
CREATE TABLE product
( maker CHAR(20) , --制造商
model CHAR(20) NOT NULL, --产品型号
type CHAR(20), --产品类型
PRIMARY KEY(model)
);
CREATE TABLE pc
( model CHAR(20) NOT NULL, --型号
speed DECIMAL(6,2), --速度
ram INT, --内存
hd DECIMAL(6,2), --硬盘容量
cd CHAR(4), --光驱
price INT, --价钱
PRIMARY KEY(model),
FOREIGN KEY(model) REFERENCES product(model)
);
CREATE TABLE laptop
( model CHAR(20) NOT NULL, --型号
speed DECIMAL(6,2), --速度
ram INT, --内存
hd DECIMAL(6,2), --硬盘容量
screen DECIMAL(6,2), --屏幕大小
price INT, --价钱
PRIMARY KEY(model),
FOREIGN KEY(model) REFERENCES product(model)
);
表样例
product表:
maker model type
D 2001 便携式电脑
D 2002 便携式电脑
E 2004 便携式电脑
D 3001 打印机
B 3002 打印机
A 1001 个人电脑
A 1002 个人电脑
A 1003 个人电脑
D 1008 个人电脑
pc表:
model speed ram hd cd price
1001 133.00 16 1.60 6X 1595
1002 120.00 16 1.60 6X 1399
1003 166.00 32 2.50 8X 1999
1008 180.00 32 2.00 8X 3699
laptop表:
model speed ram hd screen price
2001 100.00 20 1.10 9.50 1999
2002 133.00 12 0.75 11.30 2499
2004 133.00 16 1.10 11.20 3499
输出样例:
maker
D
select a.maker
from product inner join pc on product.model and pc.model inner join laptop on product.model and laptop.model as a
group by a.maker
having max(a.speed);//having的存在解决了where中无法使用聚集函数的问题

