[SQL] LISTAGG

Peter·2021년 7월 13일
0

SQL

목록 보기
17/19

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 두번째 인자는 나열하는 것들 사이에 들어가는 문구를 지정할 수 있음
profile
컴퓨터가 좋아

0개의 댓글