How to select UNIQUE records from a table using a SQL Query

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