首页 >数据库 >mysql教程 >如何在 SQL 中选择具有重复 ID 和唯一列值的行?

如何在 SQL 中选择具有重复 ID 和唯一列值的行?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-27 05:20:15997浏览

How to Select Rows with Duplicate IDs and Unique Column Values in SQL?

提取具有重复 ID 和不同列值的行

查询:

考虑下列的表:

+------+------+
| ARIDNR | LIEFNR |
+------+------+
| 1     | A     |
+------+------+
| 2     | A     |
+------+------+
| 3     | A     |
+------+------+
| 1     | B     |
+------+------+
| 2     | B     |
+------+------+

目标是检索 ARIDNR 列具有重复值而 LIEFNR 列具有不同值的所有行。

解决方案:

要有效执行此查询,请遵循以下步骤步骤:

SELECT *
FROM Table
WHERE ARIDNR IN (
    SELECT ARIDNR
    FROM Table
    GROUP BY ARIDNR
    HAVING COUNT(DISTINCT LIEFNR) > 1
)

解释:

此查询使用子查询来识别多次出现的 ARIDNR。在外部查询中,它检索具有已识别 ARIDNR 的所有行。

  1. 子查询:

    • 它按 ARIDNR 对行进行分组。
    • HAVING 子句筛选具有多个不同 LIEFNR 的 ARIDNR value.
  2. 外部查询:

    • 主查询过滤表以仅包含 ARIDNR 满足子查询的行

结果:

查询的输出将是:

+------+------+
| ARIDNR | LIEFNR |
+------+------+
| 1     | A     |
+------+------+
| 1     | B     |
+------+------+
| 2     | A     |
+------+------+
| 2     | B     |
+------+------+

此结果成功捕获具有重复 ARIDNR 和不同 LIEFNR 值的所有行。

以上是如何在 SQL 中选择具有重复 ID 和唯一列值的行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn