mysql - 协助 MySQL 查询重复项

标签 mysql sql group-by duplicates sql-order-by

Table1
  Colum1
    ID      Name        Size
    1       File23      912831823
    2       File29      823472348
    3       File21      912831823
    4       File24      742834882

基本结构如上,现在我正在寻找尺寸上的重复项,因为有时会输入错误的名称。

SELECT 名称、大小、COUNT(Size) AS 计数 FROM Column1 GROUP BY 大小 HAVING (COUNT(Size)>1) ORDER BY 计数 DESC

这给了我以下内容

            Name        Size        Counted
            File23      912831823   2

这是一个进步,因为它计算了 Size 被重复的次数,即 2。但是我的目标是 获得这样的输出,列出每个重复项,但我不太确定如何格式化该查询。

            Name        Size        Counted
            File23      912831823   2
            File21      912831823   2

我尝试了一些不同的事情,甚至尝试了外部连接,但很明显我对此了解得不够多,谁能把我推向正确的方向? =)

最佳答案

您必须进行聚合计数,然后重新加入源表:

SELECT t1.Name, Counts.Size, Counts.Counted 
FROM
    (
    SELECT Size, COUNT(ID) as Counted
    FROM t1
    GROUP BY Size
    ) Counts

    LEFT JOIN t1 ON t1.Size = Counts.Size

关于mysql - 协助 MySQL 查询重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19797991/

相关文章:

sql - 如何为特定的 CREATE TABLE [Table] AS 设置表空间

mysql - 如何在不设置sql模式的情况下在mysql中使用group by进行聚合?

Mysql 使用空表返回一些用户选择的值

Mysql 查询连接条件不起作用

mysql - sql触发器从另一个字段设置字段值

sql - rails : How to get column value if present in history?

sql-server - 在 SQL Server 中的 Group By 中传递变量

mysql - 在组内以 3 种方式更新排名

mysql - 包含 MySQL 查询结果中未找到的值

mysql - MySQL 中何时使用单引号、双引号和反引号