DROP TABLE T_UNIQUE;
CREATE TABLE T_UNIQUE (
ID NUMBER(6,0),
NAME VARCHAR2(20),
SAL NUMBER(10));
INSERT INTO T_UNIQUE(ID,NAME,SAL) VALUES(100,'RAVI',2100);
INSERT INTO T_UNIQUE(ID,NAME,SAL) VALUES(100,'RAVI',2100);
INSERT INTO T_UNIQUE(ID,NAME,SAL) VALUES(101,'SCOTT',3100);
INSERT INTO T_UNIQUE(ID,NAME,SAL) VALUES(101,'SCOTT',3100);
INSERT INTO T_UNIQUE(ID,NAME,SAL) VALUES(101,'SCOTT',3100);
INSERT INTO T_UNIQUE(ID,NAME,SAL) VALUES(102,'CLARK',4100);
INSERT INTO T_UNIQUE(ID,NAME,SAL) VALUES(102,'CLARK',4100);
INSERT INTO T_UNIQUE(ID,NAME,SAL) VALUES(103,'DAVIS',51000);
COMMIT;
SELECT * FROM T_UNIQUE;
Using ROW_NUMBER
STEP 1:
SELECT ID,NAME,SAL,
ROW_NUMBER() OVER(PARTITION BY ID,NAME,SAL ORDER BY ID) AS RN
FROM T_UNIQUE;
STEP 2:
SELECT ID, NAME, SAL FROM(
SELECT ID,NAME,SAL,
ROW_NUMBER() OVER(PARTITION BY ID,NAME,SAL ORDER BY ID) AS RN
FROM T_UNIQUE)
WHERE RN = 1;
ID NAME SAL
---------- -------------------- ----------
100 RAVI 2100
101 SCOTT 3100
102 CLARK 4100
103 DAVIS 51000
Using GROUP BY
SELECT ID,NAME,SAL FROM T_UNIQUE
GROUP BY ID, NAME, SAL;
ID NAME SAL
---------- -------------------- ----------
101 SCOTT 3100
102 CLARK 4100
103 DAVIS 51000
100 RAVI 2100
No comments:
Post a Comment