sql“分组依据”和“有”

时间:2012-06-13 10:36:26

标签: sql sql-server

我正在尝试解决一些问题而且我不确定如何执行以下操作

  

问:查找两台或更多台PC之间相同的硬盘大小。

site上的q15。

数据库方案由四个表组成:

Product(maker, model, type)
PC(code, model, speed, ram, hd, cd, price)
Laptop(code, model, speed, ram, hd, screen, price)
Printer(code, model, color, type, price)

任何指针都会受到赞赏。

编辑:这里是pc表中所有硬盘的列表以及正确的答案。

enter image description here

5 个答案:

答案 0 :(得分:5)

这个怎么样?

Select PC.hd From PC
group by PC.hd
Having Count(PC.hd) >= 2

答案 1 :(得分:3)

SELECT DISTINCT p1.hd
  FROM PC p1
  JOIN PC p2
    ON p1.code <> p2.code
 WHERE p1.hd = p2.hd

答案 2 :(得分:1)

假设:pc.code是主键。

SELECT DISTINCT a.hd
  FROM pc a
 WHERE EXISTS
       (SELECT *
          FROM pc b
         WHERE a.hd = b.hd
           AND a.code != b.code)

答案 3 :(得分:1)

试试这个

select hd from pc group by hd having count(hd)>1

我注册并尝试了这个,它说对了。

答案 4 :(得分:0)

SELECT hd FROM PC GROUP BY hd HAVING COUNT(hd)>1

右。

您的查询结果:

hd
5.0
8.0
10.0
14.0
20.0