私はそのようなテーブルを持っています
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