2017-02-18 401 views
0

我想知道我的数据库是否包含重复项。如果没有,我知道我的代码正在工作。使用SQL查找重复项?

我的数据库看起来是这样的:

---------------------------- 
| id | name | price | link | 
|---------------------------| 
| 202| test | 34.00 | googl | 
| 203| halo | 22.00 | bing | 
| 204| hovo | 31.00 | link | 
| 205| test | 34.00 | googl | 
----------------------------- 

你可以看到,名称,价格和纽带的值是他们相同的,但编号是不同的。我想到了诸如分组姓名,价格和链接之类的东西,并用它来计算。像这样的例子:

SELECT email, 
COUNT(email) AS NumOccurrences 
FROM users 
GROUP BY email 
HAVING (COUNT(email) > 1) 

但我的问题是我怎么能像我的表中的3个属性分组。按名称,价格和链接?

+0

如何查询有关样本数据?并请定义“重复”。 –

回答

1

组由多个列,而算上组大小:

SELECT name, price, link, Count(*) as cnt 
FROM table_name 
GROUP BY name, price, link 
where cnt>1 
2

可以在GROUP BY子句指定3列,例如:

SELECT name, price, link 
FROM users 
GROUP BY name, price, link 
HAVING COUNT(email) > 1; 
2

您可以通过多个领域同时组。

选择A,B,C,COUNT(d) FROM someTable GROUP BY A,B,C HAVING COUNT(d)> 1只

希望这有助于。