gpt4 book ai didi

mysql - 简单的sql计数和子查询

转载 作者:行者123 更新时间:2023-11-29 04:43:15 25 4
gpt4 key购买 nike

我目前正在做一个 sql 问题。

问题:使用产品表,找出只生产一种型号的制造商的数量。

数据库方案由四张表组成:产品(制造商、型号、类型)

“产品”表包含有关制造商、型号和类型(“PC”、“笔记本电脑”或“打印机”)的信息。假定 Product 表中的型号对于所有制造商和产品类型都是唯一的。

查询:

select count(maker) from product group by maker having count(model)=1

Select count(*) from (select maker from product group by maker having count(model)=1)as A

我想知道这两个查询之间有什么区别,它们在我看来是一样的,但显然第二个是正确的答案。

最佳答案

让我们看一下第一个查询。

create table product ( maker int not null, model int not null );
insert into product (maker, model) values (1,1),(1,2),(2,1),(3,1),(4,1),(5,1);

select maker from product group by maker having count(model)=1
MAKER
-------
2
3
4
5

即制造商 2、3、4、5 正好有一种产品。

select count(maker) from product group by maker having count(model)=1

每个制造商都会出现一个,即

-------
1
1
1
1

另一方面,另一个查询将计算有多少制造商:

select count(*) from (select maker from product group by maker having count(model)=1)

--------
4

关于mysql - 简单的sql计数和子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24090320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com