获取mysql表中的重复数据
我试图从mysql表中获取重复数据。 我的表包含4列。。其中3个具有重复行,1个具有部分重复行 因此,现在我想获取结果集中带有count的四列 例如: 表名是地址和地址 列名为Zipcode、HouseNumber、HouseNumber、BuildingColor 因此Zipcode、HouseNumber、HouseNumber列包含重复数据,BuildingColor列可能包含也可能不包含重复数据。现在我需要一个查询来获取数据,如下所示 桌子 结果集获取mysql表中的重复数据,mysql,sql,mysql-workbench,Mysql,Sql,Mysql Workbench,我试图从mysql表中获取重复数据。 我的表包含4列。。其中3个具有重复行,1个具有部分重复行 因此,现在我想获取结果集中带有count的四列 例如: 表名是地址和地址 列名为Zipcode、HouseNumber、HouseNumber、BuildingColor 因此Zipcode、HouseNumber、HouseNumber列包含重复数据,BuildingColor列可能包含也可能不包含重复数据。现在我需要一个查询来获取数据,如下所示 桌子 结果集 你只是在寻找聚合吗 select Zi
你只是在寻找聚合吗
select Zipcode, HouseNumber, HouseNumberExt, BuildingColour, count(*)
from address
group by Zipcode, HouseNumber, HouseNumberExt, BuildingColour;
如果您只想要重复的结果,您可以添加count*>1。No Jitendra。这并没有给出我想要的结果集。它还会检查重复的BuildingColor值。所以条件在这里失败了。你能告诉我输出中哪个记录不匹配吗?所以我们可以检查这里出了什么问题。Jitendra,这个查询正在获取表中的所有行。有没有办法只提取重复的行。@Suryateja,看看我的更新答案,它解决了你的问题吗?谢谢Jitendra,这正是我要找的。。非常感谢你,戈登。这并没有给出我想要的结果集。它还将检查重复的建筑颜色值。所以这里的条件失败了。@Suryateja。这怎么不符合你的要求?Gordon,这个查询正在获取表中的所有行。有没有办法只取重复的行。@Suryateja。你问题中的结果既有重复的也有单一的。到目前为止你尝试了什么???我尝试了这个查询,但无法获得所有重复的结果。从地址组中按BuildingColor、Zipcode、HouseNumber、HouseNumber、COUNT*选择BuildingColor、Zipcode、HouseNumber、HouseNumber;
|--------------------|-----------------|-----------------|-----------------|-------------|
| Zipcode | HouseNumber | HouseNumberExt | BuildingColour| Count (*) |
|--------------------|-----------------|-----------------|-----------------|-------------|
| 600056 | 32 | A | White | 2 |
|--------------------|-----------------|-----------------|-----------------|-------------|
| 600057 | 33 | B | Blue | 1 |
|--------------------|-----------------|-----------------|-----------------|-------------|
| 600057 | 33 | B | Black | 1 |
|--------------------|-----------------|-----------------|-----------------|-------------|
| 600057 | 33 | B | Purple | 1 |
|--------------------|-----------------|-----------------|-----------------|-------------|
| 600059 | 35 | D | Pink | 2 |
|--------------------|-----------------|-----------------|-----------------|-------------|
| 600059 | 35 | D | Yellow | 1 |
|--------------------|-----------------|-----------------|-----------------|-------------|
select Zipcode, HouseNumber, HouseNumberExt, BuildingColour, count(*)
from address
group by Zipcode, HouseNumber, HouseNumberExt, BuildingColour;
SELECT a.Zipcode, a.HouseNumber, a.HouseNumberExt, a.BuildingColour, COUNT(*)
FROM address a
INNER JOIN (
SELECT Zipcode, HouseNumber, HouseNumberExt, COUNT(*)
FROM address ad
GROUP BY Zipcode, HouseNumber, HouseNumberExt
HAVING COUNT(*) > 1
) AS t ON a.Zipcode = t.Zipcode AND a.HouseNumber = t.HouseNumber AND z.HouseNumberExt = t.HouseNumberExt
GROUP BY Zipcode, HouseNumber, HouseNumberExt, BuildingColour