d dbid cid 
ahn 116421 Aggie 
ahn 116432 Annes 
ahn 116443 Aqeee 
akxkf 118461 강11 
akxkf 118462 강22 
akxkf 118463 강44 
akxkf 118464 강55 

이 데이터 에서 
같은 id중에서 cid를 알파벳 순으로 정렬 
시킨 후 가장 위에 것만 가져 오는 쿼리

WITH TEMP AS 

SELECT 'ahn' AS ID, '116421' AS DBID, 'Aggide' AS CID FROM DUAL UNION ALL 
SELECT 'ahn' AS ID, '116432' AS DBID, 'Annes' AS CID FROM DUAL UNION ALL 
SELECT 'ahn' AS ID, '116443' AS DBID, 'Aqeee' AS CID FROM DUAL UNION ALL 
SELECT 'akxkf' AS ID, '118461' AS DBID, '강11' AS CID FROM DUAL UNION ALL 
SELECT 'akxkf' AS ID, '118462' AS DBID, '강22' AS CID FROM DUAL UNION ALL 
SELECT 'akxkf' AS ID, '118463' AS DBID, '강44' AS CID FROM DUAL UNION ALL 
SELECT 'akxkf' AS ID, '118464' AS DBID, '강55' AS CID FROM DUAL 

SELECT * 
FROM ( 
SELECT ROW_NUMBER() OVER(PARTITION BY ID ORDER BY CID) AS CHK 
, ID 
, DBID 
, CID 
FROM TEMP 
) A 
WHERE A.CHK = 1
 

'Oracle/Mysql/Sql' 카테고리의 다른 글

Mysql User 추가  (0) 2013.04.09
CAP Theorem  (0) 2011.06.28
두테이블을 비교해서 같지않은 값만 출력하기  (0) 2011.05.23
계층구조- SYS_CONNECT_BY_PATH 함수  (0) 2011.04.06
Mysql Table 메모리화  (0) 2011.03.15

+ Recent posts