Mysql 获取由不同查询产生的重复行数

Mysql 获取由不同查询产生的重复行数,mysql,Mysql,我有一个表,其中的行a、b、和c通常是相同的。 我有一个查询,它为我提供了每个唯一的记录。我正在尝试获取返回的每个不同记录的重复记录数 SELECT DISTINCT a, b, c, COUNT(id) as counted FROM table 这里的COUNT返回所有记录的计数。我要找的是与唯一记录相同的记录数 啊,在我写问题的时候,我从一份副本中找到了这个答案——我想我会分享我的结果,因为它们与我从中得到的答案有很大的不同 我必须使用

我有一个表,其中的行
a
b
、和
c
通常是相同的。 我有一个查询,它为我提供了每个唯一的记录。我正在尝试获取返回的每个不同记录的重复记录数

SELECT DISTINCT
     a,
     b,
     c,
     COUNT(id) as counted
FROM 
     table

这里的
COUNT
返回所有记录的计数。我要找的是与唯一记录相同的记录数

啊,在我写问题的时候,我从一份副本中找到了这个答案——我想我会分享我的结果,因为它们与我从中得到的答案有很大的不同

我必须使用一个子查询来获取查询的非不同记录。然后,我可以使用子查询的WHERE子句中第一个查询的结果

SELECT DISTINCT
     a,
     b,
     c,
     (
          SELECT 
              COUNT(id) 
          FROM 
              table_name t1
          WHERE 
              t2.a = t1.a
     ) AS counted
FROM 
     table_name t2
这很有效。如果我的理解有差距,请告诉我

在这个答案的帮助下:

上面的子查询称为内联子查询。在where子句中,t1和t2通过查询被视为不同的表(在DB中是一个表)。所以它检查等式,然后计数。正如我们为一个专栏写的那样,所有的游戏都是这样做的。
我希望我能上飞机。

这也行得通。据我所知,结果相同,查询更简单。
 SELECT a,b,c,COUNT(*) FROM table GROUP BY a,b,c
SELECT DISTINCT
     a,
     b,
     c,
     (
          SELECT 
              COUNT(id) 
          FROM 
              table_name t1
          WHERE 
              t2.a = t1.a
     ) AS counted
FROM 
     table_name t2