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