首頁 >資料庫 >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