SELECT productid,productname,price
FROM products E1
WHERE 4 = (SELECT count(*)
FROM products E2
WHERE E1.price =E2.price)
答案 0 :(得分:1)
它的工作方式如下
SELECT productid,productname,price
FROM products E1
WHERE (SELECT count(*) FROM products E2 WHERE E1.price =E2.price) = 4
:)现在它更有意义吗?
虽然可以简化
SELECT productid,productname,price,COUNT(*) AS c
FROM products
GROUP BY PRICE
HAVING COUNT(*) = 4
答案 1 :(得分:0)
外部查询会扫描所有产品。
对于每种产品,子查询都会计算出有多少产品具有相同的价格。
过滤器(where子句)生病,避免子查询计数与四个不同。
输出不是所有有四种产品价格相同的产品。
如果有人使用MS-SQL,可以使用聚合(计数和拥有)来完成同样的事情
编辑 Hanky已经使用count发布了MS-SQL等效查询