SQL“GROUP BY”和“具有”
我想通过一些问题的工作,林不知道该怎么做了以下SQL“GROUP BY”和“具有”
问:查找是相等的两间硬盘驱动器大小更多电脑。
其在此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表中所有硬盘驱动器的列表以及正确答案应该是什么。
这个怎么样?
Select PC.hd From PC
group by PC.hd
Having Count(PC.hd) >= 2
假设: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)
这一个很好,非常感谢。 –
什么是a.code? –
电脑的代码。 'a'是表pc的别名。也可以尝试运行我的查询,如果它的作品。我感兴趣:) –
试试这个
select hd from pc group by hd having count(hd)>1
我注册并试图这样,它说的权利。
SELECT DISTINCT p1.hd
FROM PC p1
JOIN PC p2
ON p1.code <> p2.code
WHERE p1.hd = p2.hd
嗨,Petar,它回来了以下错误:不明确的列名'高清'。 –
将第一行更改为“选择不同的p1.hd”,它起作用。多谢兄弟! –
SELECT hd FROM PC GROUP BY hd HAVING COUNT(hd)>1
权。
你查询的结果:
hd
5.0
8.0
10.0
14.0
20.0
非常感谢Femaref –
人,这个网站需要注册。我不会因为这里的问题而在我不知道的网站上注册。请在这里粘贴相关信息。 –
我知道,因此为什么我在原始问题中发布了大部分信息,并且只有在某人已经注册的情况下才包含链接。 –