首頁 >資料庫 >mysql教程 >如何在 MySQL 中尋找特定 ID 上的重複分數值?

如何在 MySQL 中尋找特定 ID 上的重複分數值?

Barbara Streisand
Barbara Streisand原創
2025-01-22 20:56:10304瀏覽

How to Find Duplicate Score Values Across Specific IDs in MySQL?

在MySQL中擷取重複列值的技巧

在MySQL資料庫中,您可能需要檢索那些在特定列中共享相同值的行。考慮以下表格,其中「分數」欄位包含與不同「ID」關聯的值:

ID 分数
1 95
2 100
3 88
4 100
5 73

假設您想要檢索在「ID」等於2和4的兩行中都出現的分數。

解:

要使用MySQL實現此目的,可以使用以下查詢:

<code class="language-sql">SELECT score
FROM t
GROUP BY score
HAVING COUNT(*) > 1 AND SUM(CASE WHEN id = 2 THEN 1 ELSE 0 END) > 0 AND SUM(CASE WHEN id = 4 THEN 1 ELSE 0 END) > 0;</code>

此查詢執行下列步驟:

  1. 分組 (GROUP BY): 它根據「分數」欄位對行進行分組。
  2. *計數 (COUNT()):** 它計算每個組中的行數,確保只傳回重複的分數。
  3. 條件計數 (SUM(CASE WHEN ... END)): 它分別計算每個組中ID為2和ID為4的行數。
  4. HAVING 子句: HAVING子句確保只回傳分數計數大於1,且ID為2和ID為4的計數都大於0的分數。

在本例中,結果將是:

<code>分数
100</code>

此查詢有效地檢索在「ID」等於2和4的兩行中都出現的分數值。 改進後的查詢更清楚地表達了篩選條件,避免了潛在的邏輯錯誤。

以上是如何在 MySQL 中尋找特定 ID 上的重複分數值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn