Presto로 배열을 행으로 변환
2822 단어 TreasureDataPresto
배열 -> 레코드
배열이 들어있는 열을 각각 다른 레코드로 변환하고 싶습니다.
예를 들어, tbl
테이블의 time_ranges
컬럼에 다음과 같은 배열이 들어 있다고 한다.
["16:00~16:30","16:30~17:00","17:00~17:30","17:30~18:00","18:00~18:30","18:30~19:00","19:00~19:30","19:30~20:00","20:00~20:30","20:30~21:00","21:00~21:30"]
쿼리 예
SELECT
time_range
FROM
tbl CROSS
JOIN
UNNEST(time_ranges) AS t(time_range)
실행 결과
배열 순서도 함께 별도의 레코드로 변환하고 싶습니다.
WITH ORDINALITY
절을 붙여 배열의 순서를 포함하는 컬럼을 UNNEST 후의 컬럼 구조의 말미에 추가하면 된다.
쿼리 예
SELECT
time_id,
time_range
FROM
tbl CROSS
JOIN
UNNEST(time_ranges) WITH ORDINALITY AS t(
time_range,
time_id
)
실행 결과
문자열의 배열이 들어있는 열을 그대로 연결 한 문자열로 만들고 싶습니다.
'ARRAY_JOIN'
SELECT
ARRAY_JOIN(ARRAY['Hello', ' ', 'World', '!'], '')
다음은 불필요
REDUCE
함수를 사용하여 CONCAT
를 적용합니다.
SELECT
REDUCE(ARRAY['Hello', ' ', 'World', '!'],
'',
(s, x) -> CONCAT(s, x),
s -> s)
참고
Presto Documentation
htps : // p s와 db. 이오/도 cs/쿤 t/sql/세ぇct. HTML
Reference
이 문제에 관하여(Presto로 배열을 행으로 변환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/bwtakacy/items/b803dc5f3b44a3205832
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
["16:00~16:30","16:30~17:00","17:00~17:30","17:30~18:00","18:00~18:30","18:30~19:00","19:00~19:30","19:30~20:00","20:00~20:30","20:30~21:00","21:00~21:30"]
SELECT
time_range
FROM
tbl CROSS
JOIN
UNNEST(time_ranges) AS t(time_range)
SELECT
time_id,
time_range
FROM
tbl CROSS
JOIN
UNNEST(time_ranges) WITH ORDINALITY AS t(
time_range,
time_id
)
SELECT
ARRAY_JOIN(ARRAY['Hello', ' ', 'World', '!'], '')
SELECT
REDUCE(ARRAY['Hello', ' ', 'World', '!'],
'',
(s, x) -> CONCAT(s, x),
s -> s)
Reference
이 문제에 관하여(Presto로 배열을 행으로 변환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/bwtakacy/items/b803dc5f3b44a3205832텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)