안녕하세요.
테이블에서 최초 데이터만 뽑아오고 싶은데,, 어떻게 해야할지 찾다가 문의 올립니다ㅜㅜ
테이블 A에 user_no, event, event_name, event_no, reg_date 등이 있는데,
한 명의 User가 최초에 A테이블에 insert되면서 남긴 정보만 가지고 오고 싶거든요,,,
예를들어 테이블이 아래와 같을때,
user_no | event_no | event_name | state | reg_date |
0001 | 300 | 새우깡 | 1 | 2015-06-01 |
0001 | 301 | 감자깡 | 1 | 2015-06-02 |
0002 | 300 | 새우깡 | 1 | 2015-06-01 |
0001 | 300 | 새우깡 | 2 | 2015-06-04 |
0001 유저가 최초로 받은 새우깡 첫번째 row만 조회하고 싶은거에요...
마찬가지로 0002도 최초로 받은 이벤트,,
즉, user_no 기준 최초로 받은 row를 셀렉트 해오는건데,, 어려울까요ㅜ
min(reg_date)로 해서 union all 하면 되는건지,, 잘 안되더라구요ㅜ
고수님들 부탁 드립니다ㅜ
Comment 1
-
악마곰
2015.06.01 14:22
group by 에 대해서 더 학습 하셔야 겠네요...아래 구문 참조 하세요with tmp as (select '0001' as user_no, 300 as event_no, '새우깡' as event_name, 1 as state, '2015-06-01' as reg_date union allselect '0001', 301, '감자깡', 1, '2015-06-02' union allselect '0002', 300, '새우깡', 1, '2015-06-01' union allselect '0001', 300, '새우깡', 2, '2015-06-04')selectuser_no, event_no, event_name , min(reg_date)from tmpgroup by user_no, event_no, event_name;