%%sql
SELECT DISTINCT channel -- 유일한 채널 이름을 알고 싶은 경우
FROM raw_data.user_session_channel;
SELECT channel, COUNT(1) -- 채널별 카운트를 하고 싶은 경우. COUNT 함수!!
FROM raw_data.user_session_channel
GROUP BY 1;
결과값
Naver | 16921 |
16791 | |
Youtube | 17091 |
16831 | |
Organic | 16904 |
16982 |
%%sql
SELECT
channel,
CASE
WHEN channel in ('Facebook', 'Instagram') THEN 'Social-Media' -- 페이스북, 인스타 채널이면 social-media
WHEN channel in ('Google', 'Naver') THEN 'Search-Engine' -- 구글, 네이버이면 Search-engine 으로 구별
ELSE 'Something-Else' -- 그외는 something else
END channel_type --채널 타입 컬럼으로 출력
FROM raw_data.user_session_channel
LIMIT 100;
channelchannel_type
Naver | Search-Engine |
Social-Media | |
Social-Media | |
Naver | Search-Engine |
Youtube | Something-Else |
Organic | Something-Else |
Social-Media |
%%sql
SELECT
DISTINCT -- 중복없이
LEN(channel), -- 채널별로 길이
UPPER(channel), -- 소문자
LOWER(channel), -- 대문자
LEFT(channel, 4) -- 왼쪽부터 4개 문자만 출력
FROM raw_data.user_session_channel
LIMIT 100;
7 | ORGANIC | organic | Orga |
6 | Goog | ||
8 | Face | ||
5 | NAVER | naver | Nave |
7 | YOUTUBE | youtube | Yout |
9 | Inst |
%%sql
SELECT
COUNT(1) count_1,
COUNT(0) count_0,
COUNT(NULL) as count_null, -- null은 항상 count를 스킵 = 0
COUNT(value) count_value, -- value 는 null 값 빼고 카운
COUNT(DISTINCT value) count_distinct_value -- null, 1, 0,4,3 중에 null 값 빼고 카운트
FROM raw_data.count_test;
%%sql
SELECT 0 + NULL, 0 - NULL, 0 * NULL, 0/NULL -- null이 들어가면 그 결과도 null (=none)
'SQL' 카테고리의 다른 글
[SQL] BOOLEAN, NULL 값 처리하기|채널별 월별 매출액 테이블 만들기 (0) | 2024.01.02 |
---|---|
[SQL]JOIN이란? INNER, LEFT, FULL, CROSS JOIN (1) | 2024.01.02 |
[SQL]GROUP BY와 CTAS, 데이터 품질 확인하기 (1) | 2024.01.01 |
[MySQL]MySQL DB 구축하기 - Excel 파일 올리기 (0) | 2023.12.15 |
[TIL]KEY-VALUE|JSON_OBJECT,EXTRACT|JSON_INSERT,REPLACE (0) | 2023.12.08 |