gpt4 book ai didi

sql - 如何只获取表中重复的记录?

转载 作者:行者123 更新时间:2023-12-04 21:38:40 25 4
gpt4 key购买 nike

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

我有一个包含三列(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
-------------------------------

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

最佳答案

通过结合 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

关于sql - 如何只获取表中重复的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7105618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com