有人递给我一个场景,具有寻找解决这个sql查询
产品架构的更优雅的方式:
maker model type
A 1232 PC
A 1233 PC
A 1276 Printer
A 1298 Laptop
A 1401 Printer
A 1408 Printer
A 1752 Laptop
B 1121 PC
B 1750 Laptop
C 1321 Laptop
D 1288 Printer
D 1433 Printer
E 1260 PC
E 1434 Printer
E 2112 PC
E 2113 PC
和查询是
获取制造商只生产一种产品类型和多个 模型。
输出列应该是制造商和类型。
这就是我想出来的。
select distinct maker, type
from Product
where maker in (select maker
from Product
group by maker, type
having count(model) > 1
except
select maker
from
(
select distinct maker, type
from Product
) A
group by maker
having count(type) > 1)
我知道这似乎不优雅的以任何方式,所以我想知道是否有人能想出一个更好的选择和为什么它比上述的查询更好地解释。
编辑:请确保答案是仅仅两列宽是
设备,类型
能否请你添加一个标签为您的RDBMS引擎? – amphetamachine
子查询可以简单地是一个GROUP BY,在HAVING中有条件。 – jarlh