【发布时间】:2013-03-12 15:05:39
【问题描述】:
我有一张这样的桌子
custno, type, color
A1234, B, Red
A1234, C, Blue
A1277, B, Red
A1288, A, Black
A1288, B, Red
A1289, A, Black
我只需要检索仅找到一次的唯一记录 A1277 和 A1289。
【问题讨论】:
我有一张这样的桌子
custno, type, color
A1234, B, Red
A1234, C, Blue
A1277, B, Red
A1288, A, Black
A1288, B, Red
A1289, A, Black
我只需要检索仅找到一次的唯一记录 A1277 和 A1289。
【问题讨论】:
这将在结果列表中显示custNO,
SELECT custNo
FROM tableName
GROUP BY custNO
HAVING COUNT(*) = 1
但是如果你想得到整行,
SELECT a.*
FROM tableName a
INNER JOIN
(
SELECT custNo
FROM tableName
GROUP BY custNO
HAVING COUNT(*) = 1
) b ON a.custNo = b.custNo
【讨论】:
SELECT custno
FROM yourTable
GROUP BY custno
HAVING COUNT(*) = 1
【讨论】:
试试这个,因为这样可以避免代价高昂的连接操作--
SELECT custno,type,color FROM
(
SELECT custno, type, color, COUNT(custno) OVER(PARTITION BY custno) CNT
FROM tableName
)TMP WHERE CNT=1
【讨论】: