查询至少产生三种不同的速度PC的厂商

本题目要求编写SQL语句,
查询至少生产三种不同速度PC的厂商。

表结构:

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)
);

product表:

makermodeltype
D2001便携式电脑
D2002便携式电脑
E2004便携式电脑
D3001打印机
B3002打印机
A1001个人电脑
A1002个人电脑
A1003个人电脑
D1008个人电脑

pc表:

modelspeedramhdcdprice
1001133.00161.606X1595
1002120.00161.606X1399
1003166.00322.508X1999
1008180.00322.008X3699

 输出样例:

maker
A

SELECT maker
FROM product
JOIN pc ON product.model = pc.model
WHERE type = '个人电脑'
GROUP BY maker
HAVING COUNT(DISTINCT speed) >= 3;

首先通过 JOIN 连接 product 表和 pc 表,然后筛选出产品类型为 “个人电脑” 的记录,接着按 maker 分组,最后使用 HAVING 子句筛选出生产至少三种不同速度 PC 的厂商。 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值