【问题标题】:How to get only repeated records in a table?如何只获取表中的重复记录?
【发布时间】:2023-03-15 07:42:01
【问题描述】:

我不知道问这个问题如何更好,所以我的搜索变得绝望。

我有一个包含三列(Column1、Column2、Column3)的表。其中有许多由不同和相同值组成的记录。我只想获得与 column1、column2 和 column3 值完全相同的记录。如何在一般 SQL 中以最快的查询获得它们?尤其是 HSQLDB?

此外,如果我的表有 4 列(+ Column4),但我仍然需要 column1、column2 和 column3 值的相同记录。查询必须更改还是将相同?

示例;

-------------------------------
| Column1 | Column2 | Column3 |
|    1    |    2    |   3     |  <-- A
|    2    |    2    |   30    |  <-- B
|    3    |    3    |   10    |
|    4    |    12   |   3     |  <-- C
|    1    |    3    |   3     |
|    1    |    4    |   3     |
|    1    |    5    |   3     |
|    4    |    12   |   3     |  <-- C
|    2    |    2    |   30    |  <-- B
|    1    |    2    |   3     |  <-- A
|    4    |    12   |   3     |  <-- C
-------------------------------

所以我需要选择所有 A、B 和C 记录。结果应该是;

-------------------------------
| Column1 | Column2 | Column3 |
|    1    |    2    |   3     |  <-- A
|    2    |    2    |   30    |  <-- B
|    4    |    12   |   3     |  <-- C
|    4    |    12   |   3     |  <-- C
|    2    |    2    |   30    |  <-- B
|    1    |    2    |   3     |  <-- A
|    4    |    12   |   3     |  <-- C
-------------------------------

-结果省略了完全不同的记录-

【问题讨论】:

    标签: sql hsqldb


    【解决方案1】:

    通过结合HAVING 子句进行分组来获取它们。这也应该在 HSQLDB 中工作。 HAVING 子句从结果中删除所有数据,行不包含多个。当您有一个包含 4 列的表时,您必须采用该语句。

    SELECT Column1,Column2,Column3 FROM Table GROUP BY Column1,Column2,Column3 HAVING COUNT(*)>1
    

    编辑:已编辑以获取所有行

    SELECT x.* FROM Table x INNER JOIN (
        SELECT Column1,Column2,Column3 FROM Table GROUP BY Column1,Column2,Column3 HAVING COUNT(*)>1
    ) y ON x.Column1=y.Column1 AND x.Column2=y.Column2 AND x.Column3=y.Column3
    

    【讨论】:

      【解决方案2】:
      SELECT Column1, Column2, Column3, count(*) from myTable
      GROUP BY Column1, Column2, Column3
      

      如果您不关心计数,可以省略 Count(*)。 这是你想要的吗?

      有点难以理解你想要什么。你能举一个你想要的输出结果的例子吗?

      【讨论】:

      • 我添加了我希望看到的结果。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-28
      • 1970-01-01
      • 1970-01-01
      • 2015-03-05
      • 1970-01-01
      相关资源
      最近更新 更多