Hi hirenshah !
Look this example:
CREATE TABLE RANK_SAMPLE
(
ID NUMBER(10) NOT NULL,
CREATE_TIME DATE,
CLASS_TYPE VARCHAR2(50 BYTE)
)
/
–Data
INSERT INTO RANK_SAMPLE(ID, CREATE_TIME, CLASS_TYPE) VALUES(2080625, TO_DATE(‘14/10/2014 10:32’, ‘DD/MM/YYYY HH24:MI’), ‘T2’);
INSERT INTO RANK_SAMPLE(ID, CREATE_TIME, CLASS_TYPE) VALUES(2080640, TO_DATE(‘14/10/2014 10:34’, ‘DD/MM/YYYY HH24:MI’), ‘T3’);
INSERT INTO RANK_SAMPLE(ID, CREATE_TIME, CLASS_TYPE) VALUES(2080619, TO_DATE(‘14/10/2014 10:34’, ‘DD/MM/YYYY HH24:MI’), ‘T4’);
INSERT INTO RANK_SAMPLE(ID, CREATE_TIME, CLASS_TYPE) VALUES(2080618, TO_DATE(‘14/10/2014 10:34’, ‘DD/MM/YYYY HH24:MI’), ‘T5’);
INSERT INTO RANK_SAMPLE(ID, CREATE_TIME, CLASS_TYPE) VALUES(2080628, TO_DATE(‘14/10/2014 10:39’, ‘DD/MM/YYYY HH24:MI’), ‘T6’);
INSERT INTO RANK_SAMPLE(ID, CREATE_TIME, CLASS_TYPE) VALUES(2080621, TO_DATE(‘14/10/2014 10:29’, ‘DD/MM/YYYY HH24:MI’), ‘T6’);
INSERT INTO RANK_SAMPLE(ID, CREATE_TIME, CLASS_TYPE) VALUES(2080623, TO_DATE(‘14/10/2014 10:31’, ‘DD/MM/YYYY HH24:MI’), ‘T6’);
INSERT INTO RANK_SAMPLE(ID, CREATE_TIME, CLASS_TYPE) VALUES(2080620, TO_DATE(‘14/10/2014 10:29’, ‘DD/MM/YYYY HH24:MI’), ‘T1’);
INSERT INTO RANK_SAMPLE(ID, CREATE_TIME, CLASS_TYPE) VALUES(2080643, TO_DATE(‘14/10/2014 10:37’, ‘DD/MM/YYYY HH24:MI’), ‘T1’);
INSERT INTO RANK_SAMPLE(ID, CREATE_TIME, CLASS_TYPE) VALUES(2080642, TO_DATE(‘14/10/2014 10:36’, ‘DD/MM/YYYY HH24:MI’), ‘T1’);
INSERT INTO RANK_SAMPLE(ID, CREATE_TIME, CLASS_TYPE) VALUES(2080641, TO_DATE(‘14/10/2014 10:34’, ‘DD/MM/YYYY HH24:MI’), ‘T1’);
INSERT INTO RANK_SAMPLE(ID, CREATE_TIME, CLASS_TYPE) VALUES(2080639, TO_DATE(‘14/10/2014 10:50’, ‘DD/MM/YYYY HH24:MI’), ‘T1’);
INSERT INTO RANK_SAMPLE(ID, CREATE_TIME, CLASS_TYPE) VALUES(2080638, TO_DATE(‘14/10/2014 10:50’, ‘DD/MM/YYYY HH24:MI’), ‘T1’);
INSERT INTO RANK_SAMPLE(ID, CREATE_TIME, CLASS_TYPE) VALUES(2080635, TO_DATE(‘14/10/2014 10:43’, ‘DD/MM/YYYY HH24:MI’), ‘T1’);
INSERT INTO RANK_SAMPLE(ID, CREATE_TIME, CLASS_TYPE) VALUES(2080636, TO_DATE(‘14/10/2014 10:45’, ‘DD/MM/YYYY HH24:MI’), ‘T1’);
INSERT INTO RANK_SAMPLE(ID, CREATE_TIME, CLASS_TYPE) VALUES(2080637, TO_DATE(‘14/10/2014 10:47’, ‘DD/MM/YYYY HH24:MI’), ‘T1’);
INSERT INTO RANK_SAMPLE(ID, CREATE_TIME, CLASS_TYPE) VALUES(2080624, TO_DATE(‘14/10/2014 10:31’, ‘DD/MM/YYYY HH24:MI’), ‘T7’);
INSERT INTO RANK_SAMPLE(ID, CREATE_TIME, CLASS_TYPE) VALUES(2080644, TO_DATE(‘14/10/2014 10:37’, ‘DD/MM/YYYY HH24:MI’), ‘T7’);
INSERT INTO RANK_SAMPLE(ID, CREATE_TIME, CLASS_TYPE) VALUES(2080634, TO_DATE(‘14/10/2014 10:43’, ‘DD/MM/YYYY HH24:MI’), ‘T7’);
INSERT INTO RANK_SAMPLE(ID, CREATE_TIME, CLASS_TYPE) VALUES(2080631, TO_DATE(‘14/10/2014 10:42’, ‘DD/MM/YYYY HH24:MI’), ‘T7’);
INSERT INTO RANK_SAMPLE(ID, CREATE_TIME, CLASS_TYPE) VALUES(2080629, TO_DATE(‘14/10/2014 10:39’, ‘DD/MM/YYYY HH24:MI’), ‘T7’);
/
– Normal “Select”
SELECT * FROM RANK_SAMPLE
ORDER BY CLASS_TYPE, CREATE_TIME
– Look for multiple data column CLASS_TYPE

– Now, using the RANK function enumerate the rows of the same CLASS_TYPE according to the order we need.
–In this case I need to get the record with the lowest date of each type, then in rank function we set CLASS_TYPE column and order by CLASS_TYPE and CREATE_TIME
SELECT RANK() OVER(PARTITION BY CLASS_TYPE ORDER BY CLASS_TYPE, CREATE_TIME) ITEM,
ID, CREATE_TIME, CLASS_TYPE
FROM RANK_SAMPLE
ORDER BY CLASS_TYPE
– Look data

–Finally we use a sub query and select where item = 1
SELECT ID, CREATE_TIME, CLASS_TYPE
FROM (
SELECT RANK() OVER(PARTITION BY CLASS_TYPE ORDER BY CLASS_TYPE, CREATE_TIME) ITEM,
ID, CREATE_TIME, CLASS_TYPE
FROM RANK_SAMPLE
) XX
WHERE ITEM = 1
ORDER BY CLASS_TYPE

I hope can help you.
Apologies if I have problems with translation to English.
Good luck !