[천재교육] SQL 기초(2) –

윈도우 기능

1.ROW_NUMBER
2위
3. DENSE_랭크
4. 합계
5.PERCENT_RANK

사용자 ID, mcode, start_timestamp, end_timestamp, learning_time, learning_seq 선택
, ROW_NUMBER() 정보 (로 나누다 사용자 아이디 정렬 기준 시작_타임스탬프 ASC) 처럼 _라인 번호
=>
줄 번호 알려줄게 / 사용자 ID로 구분 / start_timestamp 오름차순 정렬 / 열 이름으로 _ROW_NUMBER
# 줄 번호는 연속적으로 번호가 매겨집니다.


, 랭크() 오버 (로 나누다 사용자 아이디 정렬 기준 시작_타임스탬프 ASC) AS _RANK
# 순위가 같은 경우 순위를 건너뜁니다. (예: 1,2,2,2,5)

, DENSE_RANK() 오버 (로 나누다 사용자 아이디 정렬 기준 start_timestamp ASC) AS _DENSE_RANK
# DENSE_RANK()는 같은 순위를 건너뛰지 않습니다. (예: 1,2,2,2,3)

, PERCENT_RANK() 오버 (로 나누다 사용자 아이디 정렬 기준 start_timestamp ASC) AS _PERCENT_RANK
# PERCENT_RANK() 최대값이 1인 백분율

, (공부시간) 위에 (로 나누다 사용자 아이디 정렬 기준 시작_타임스탬프 ASC) AS _SUM

FROM “text_biz_dw”.”e_learning_time_proc” WHERE CONCAT(yyyy, mm, dd) = ‘20221201’
ORDER BY userid ASC, learning_seq ASC
한도 1000;

Athena에서 지원하는 다양한 기능

Athena 엔진 v2(Presto):

https://prestodb.io/docs/current/functions.html

Athena 엔진 v3(Trino):

https://trino.io/docs/current/functions.html

Athena Engine v3(Trino) – 기계 학습 기능:

https://trino.io/docs/current/functions/ml.html

둘 이상의 데이터 항목을 조작하는 방법

하나. 연결하다

FROM 테이블 이름 AS
연결하다 테이블 이름 AS b
A a.열 이름 = b.열 이름



2. 노동 조합



와 함께

가상 테이블 생성

와 함께
ym 그대로 (
값(문자 ‘202212’)
),
ymd AS (
값(문자 ‘20221201’)
)
선택하다 *
에서;

와 함께
테이블1 AS (
SELECT userid FROM “text_biz_dw”..”e_member” WHERE CONCAT(yyyy, mm) = ‘202201’ AND memberstatus_codename=”학생(젊은)”
),
표2 AS (
SELECT userid FROM “text_biz_dw”..”e_member” WHERE CONCAT(yyyy, mm) = ‘202212’ AND memberstatus_codename=”Apprentice(Young)”
),
표3 AS (
SELECT * FROM “text_biz_dm”..”learning_analytics_user” WHERE CONCAT(yyyy, mm) = (SELECT * FROM ym)
)
선택하다 *
표 1에서;

OLTP 대 OLAP