我有以下表結構:
id num1 num2 num3 ...
1 1 2 3
2 1 3 2
3 1 2 3
.
.
.
我使用以下命令來顯示重復項和計數:
SELECT COUNT(num1), num1, num2, num3
FROM table
GROUP BY num1, num2, num3
HAVING (COUNT(num1) > 1) AND (COUNT(num2) > 1) AND (COUNT(num3) > 1)
這個命令給了我 2 的計數。我想知道如何將第二行也算作重復。
uj5u.com熱心網友回復:
您需要標量函式MIN()并按MAX()升序獲取每行的 3 個整數值,以便您可以創建一個唯一的三元組以進行分組:
SELECT COUNT(*) count,
MIN(num1, num2, num3) num_1,
num1 num2 num3 - MIN(num1, num2, num3) - MAX(num1, num2, num3) num_2,
MAX(num1, num2, num3) num_3
FROM tablename
GROUP BY num_1, num_2, num_3
HAVING COUNT(*) > 1;
請參閱演示。
uj5u.com熱心網友回復:
將運算子更改為 OR 將回傳您想要的內容
SELECT COUNT(num1), num1, num2, num3
FROM table
GROUP BY num1, num2, num3
HAVING (COUNT(num1) > 1) OR (COUNT(num2) > 1) OR (COUNT(num3) > 1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/401097.html
