LISTAGG
- GROUP BY에서 사용되는 Aggregate 함수 중의 하나
- 사용자 ID별로 채널을 순서대로 리스트
%%sql
SELECT userid, LISTAGG(channel) WITHIN GROUP (ORDER BY ts) channels
FROM raw_data.user_session_channel usc
JOIN raw_data.session_timestamp st ON usc.sessionid = st.sessionid
GROUP BY 1
LIMIT 10;
- 유저세션채널과 타임스탬프 테이블을 묶어주고
- userid를 받고 ts를 기준으로 정렬한 channel들을 아이디를 그룹핑해 그 안에 한줄로 표현
%%sql
SELECT userid, LISTAGG(channel, '->') WITHIN GROUP (ORDER BY ts) channels
FROM raw_data.user_session_channel usc
JOIN raw_data.session_timestamp st ON usc.sessionid = st.sessionid
GROUP BY 1
LIMIT 10;
- LISTAGG 두번째 인자는 나열하는 것들 사이에 들어가는 문구를 지정할 수 있음