일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 맛집
- 낙서
- crawlee
- Database
- 티스토리챌린지
- clickhouse
- 인문
- 윈드서프
- query
- 스티커
- 독서
- Playwright
- mysql
- 취미
- 클릭하우스
- duckdb
- AI
- 데이터엔지니어링
- 스트릿
- 그래피티
- SQL
- 수원
- db
- Advanced
- 행궁동
- 책
- 데이터베이스
- Python
- 오블완
- dbt
- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 맛집
- 낙서
- crawlee
- Database
- 티스토리챌린지
- clickhouse
- 인문
- 윈드서프
- query
- 스티커
- 독서
- Playwright
- mysql
- 취미
- 클릭하우스
- duckdb
- AI
- 데이터엔지니어링
- 스트릿
- 그래피티
- SQL
- 수원
- db
- Advanced
- 행궁동
- 책
- 데이터베이스
- Python
- 오블완
- dbt
- Today
- Total
yeznable
[ 쿼리 ] Advanced SQL for Data Professionals (7) - Transforming an Array to Rows 본문
[ 쿼리 ] Advanced SQL for Data Professionals (7) - Transforming an Array to Rows
yeznable 2024. 12. 6. 18:41이 포스트는 Medium에 올라온 다음 아티클을 참고하여 정리한 글입니다.
Advanced SQL for Data Professionals
To start working with data, it is important to learn tools like SQL. Structured Query Language (SQL) is a programming language used for…
medium.com
Medium 아티클에서 소개하는 Transforming an Array to Rows의 의미는 Array로 주어진 값을 Row로 구성한 데이터를 만든다는 뜻 같다.
Databricks에서 CTE를 지원하지 않기 때문에 이전에 소개된 CTE를 활용해 date dimension table createion 과 같은 결과를 만들고자 할 때 이런 기능이 필요하다.
[ Using EXPLODE in Databricks SQL ]
# 이 쿼리는 Databricks 문법으로 쓰여진 쿼리이다
# MySQL로는 실행되지 않는다.
SELECT date,
DATE_PART('YEAR', DATE) year,
DATE_PART('month', DATE) month
FROM (
SELECT
EXPLODE(SEQUENCE(DATE'2024-01-01', DATE'2024-12-31',INTERVAL 1 DAY)) AS date
) AS calendar
Databricks에서 쿼리한 결과가 오른쪽과 같다.
Databricks 실습 환경이 있지는 않아서 확신할 수는 없지만 설명을 봤을 때 SEQUENCE 함수는 Array를 만들어 주고 EXPLODE 함수는 Array를 Rows로 변환해주어서 이와 같은 결과를 내는 것 같다.
[ UNNEST: DuckDB and BigQuery ]
# 이 쿼리는 DuckDB 또는 BigQuery 문법으로 쓰여진 쿼리이다
# MySQL로는 실행되지 않는다.
SELECT UNNEST([1, 2, 3]) AS qt
DuckDB와 BigQuery 실습 환경도 가지고 있지 않지만 해당 엔진들에서는 같은 기능을 UNNEST로 구현할 수 있다.
UNNEST로 Array [1, 2, 3]을 Rows로 변환한 결과는 오른쪽과 같다.
처음에 Databricks는 CTE를 지원하지 않아서 EXPLODE를 활용해 구현해야 한다고 언급되어있다.
MySQL에서 해당 기능을 구현하려면 CTE를 활용하는 것이 좋을 것 같다.
[ 쿼리 ] Advanced SQL for Data Professionals (1) - Common Table Expression(CTE)
이 포스트는 Medium에 올라온 다음 아티클을 참고하여 정리한 글입니다. Advanced SQL for Data ProfessionalsTo start working with data, it is important to learn tools like SQL. Structured Query Language (SQL) is a programming language
yeznable-blog.tistory.com
다음 포스트에서는 NTILE 내용을 정리한다.
'하는 일 > 데이터엔지니어링' 카테고리의 다른 글
[ 쿼리 ] Advanced SQL for Data Professionals (9) - MERGE INTO (0) | 2024.12.09 |
---|---|
[ 쿼리 ] Advanced SQL for Data Professionals (8) - NTILE (0) | 2024.12.09 |
[ 쿼리 ] Advanced SQL for Data Professionals (6) - LAG/LEAD (0) | 2024.12.06 |
[ 쿼리 ] Advanced SQL for Data Professionals (5) - PIVOT/UNPIVOT (0) | 2024.12.05 |
[ 쿼리 ] Advanced SQL for Data Professionals (4) - Filling Gaps in Data Using SQL (0) | 2024.12.05 |