You may use COUNT
analytical function.
SQL Fiddle
Oracle 11g R2 Schema Setup:
CREATE TABLE emp
(Empid int, Deptid int, Email varchar2(16))
;
INSERT ALL
INTO emp (Empid, Deptid, Email)
VALUES (39, 42, '[email protected]')
INTO emp (Empid, Deptid, Email)
VALUES (38, 43, '[email protected]')
INTO emp (Empid, Deptid, Email)
VALUES (37, 44, '[email protected]')
INTO emp (Empid, Deptid, Email)
VALUES (25, 35, '[email protected]')
INTO emp (Empid, Deptid, Email)
VALUES (26, 36, '[email protected]')
SELECT * FROM dual
;
Query 1:
SELECT Empid, Deptid, Email
FROM (SELECT e.*, COUNT (Empid) OVER (PARTITION BY Email) ct
FROM emp e)
WHERE ct = 1
Results:
| EMPID | DEPTID | EMAIL |
|-------|--------|------------------|
| 26 | 36 | [email protected] |
| 25 | 35 | [email protected] |