我有一个表,这样选择单个记录只
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
试试这个,因为这将避免代价高昂的加盟operation--
SELECT custno,type,color FROM ( SELECT custno, type, color, COUNT(custno) OVER(PARTITION BY custno) CNT FROM tableName )TMP WHERE CNT=1
我怎么会那么只有选择那些类型=“B” – macunte 2013-03-12 15:19:14
这是你想要的吗? http://sqlfiddle.com/#!2/d53e0/3 – 2013-03-12 15:20:16
是的,看起来不错。我有一个关于custNo的客户表CTABLE,我会在哪里放置这个连接?我尝试在内部连接的结尾添加,但这减少了我的结果数量。 – macunte 2013-03-12 16:52:29