쿼리 좀 도와주세요~ㅠ 그룹별 첫번째 행가져오기 0 1 3,697

by 광어얌 [SQL Query] [2016.10.09 12:58:15]


잘안되서 이렇게 글올립니다

아래와 같이 데이터가 있는데 ID별 첫번째 행만 가져오면 되는건데 잘 안되서요... (오라클입니다)

그룹바이로 해도 잘 안되네요...ㅠ 고수님들 도와주세요ㅠ

 

테이블명 :  TEST_USE

ID CNTT
A 테스트1
A 테스트2
A 테스트3
B 테스트4
B 테스트5
B 테스트6
C 테스트7
C 테스트8
C 테스트9

 

결과 

A 테스트1
B 테스트4
C 테스트7

 

 

by 타락천사 [2016.10.09 21:53:50]
WITH TEST_USE AS (
SELECT 'A' ID, '테스트1' CNTT FROM DUAL UNION ALL
SELECT 'A' ID, '테스트2' CNTT FROM DUAL UNION ALL
SELECT 'A' ID, '테스트3' CNTT FROM DUAL UNION ALL
SELECT 'B' ID, '테스트4' CNTT FROM DUAL UNION ALL
SELECT 'B' ID, '테스트5' CNTT FROM DUAL UNION ALL
SELECT 'B' ID, '테스트6' CNTT FROM DUAL UNION ALL
SELECT 'C' ID, '테스트7' CNTT FROM DUAL UNION ALL
SELECT 'C' ID, '테스트8' CNTT FROM DUAL UNION ALL
SELECT 'C' ID, '테스트9' CNTT FROM DUAL )
-- CASE 1 ROW_NUMBER() 사용 
--SELECT ID, CNTT 
--FROM 
--( SELECT ID, CNTT, ROW_NUMBER() OVER ( PARTITION BY ID ORDER BY CNTT ) AS RN
--  FROM  TEST_USE ) TMP
--WHERE TMP.RN = 1  
-- CASE 2  -- 단순 GROUP BY 
--SELECT ID, MIN(CNTT) 
--FROM   TEST_USE
--GROUP BY ID 
-- CASE 3 -- KEEP 절 사용 
--SELECT ID, MAX(CNTT) KEEP(DENSE_RANK LAST ORDER BY CNTT DESC )
--FROM  TEST_USE
--GROUP BY ID 

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입