參見下表:如何消除並只顯示非重複記錄
col1 col2
---- ----
1 | a
2 | b
3 | c
4 | a
5 | d
6 | b
7 | e
現在我想只顯示非重複記錄。這意味着3,5,7。
如何編寫查詢來獲得結果?
參見下表:如何消除並只顯示非重複記錄
col1 col2
---- ----
1 | a
2 | b
3 | c
4 | a
5 | d
6 | b
7 | e
現在我想只顯示非重複記錄。這意味着3,5,7。
如何編寫查詢來獲得結果?
SELECT col1, col2
FROM table
GROUP BY col2
HAVING COUNT(*) = 1;
SELECT B.*
FROM
(
SELECT col2
FROM YOURTABLE
GROUP BY col2
HAVING COUNT(*)=1
) A,
YOURTABLE B
WHERE A.col2 = B.col2
SELECT COUNT(*)作爲CNT,COL1,COL2 FROM表 GROUP BY COL2 HAVING CNT = 1;
相信這是明確的,相當正確的:
SELECT *
FROM table
WHERE
col2 IN (SELECT col2 FROM table GROUP BY col2 HAVING COUNT(*) = 1)
你得到了我的問題完全一樣。謝謝! – agurchand 2012-03-22 20:05:21
實際上,包含在不包含聚合或不包含在GROUP BY中的SELECT列表列中是一個壞主意。它可以在mysql中工作,但並不好。 – 2012-03-22 20:09:30