获取DISTINCT查询产生的重复行数

时间:2013-03-08 10:42:35

标签: mysql

我的表格中包含abc通常相同的行。 我有一个查询,给我每个独特的记录。我正在尝试获取返回的每个不同记录的重复记录的计数。

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

COUNT此处返回所有记录的计数。我所寻找的是与唯一记录相同的记录数。

3 个答案:

答案 0 :(得分:3)

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中的单个表)。所以它检查相等然后计数。因为我们对一个专栏进行了区分,所以所有的游戏都只用了这个。 我希望能够飞机。

答案 1 :(得分:2)

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

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

SELECT DISTINCT
     a,
     b,
     c,
     (
          SELECT 
              COUNT(id) 
          FROM 
              table_name t1
          WHERE 
              t2.a = t1.a
     ) AS counted
FROM 
     table_name t2

这很有效。如果我的理解存在差距,请告诉我。

在此答案的帮助下:https://stackoverflow.com/a/14110336/1270996

答案 2 :(得分:2)

 SELECT a,b,c,COUNT(*) FROM table GROUP BY a,b,c