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
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 |