데이터 분석/SQL
-
[BigQuery] 사용자의 서비스 사용 속성별로 집계데이터 분석/SQL 2022. 5. 13. 20:22
더보기 출처 : 데이터 분석을 위한 SQL 레시피 11장 사용자 전체의 특징과 경향 찾기 더보기 DROP TABLE IF EXISTS ch4.mst_users; CREATE TABLE ch4.mst_users( user_id string(255) , sex string(255) , birth_date string(255) , register_date string(255) , register_device string(255) , withdraw_date string(255) ); INSERT INTO ch4.mst_users VALUES ('U001', 'M', '1977-06-17', '2016-10-01', 'pc' , NULL ) , ('U002', 'F', '1953-06-12', '2016-10-..
-
[BigQuery] ROLLUP 없이 ROLLUP 구현하기데이터 분석/SQL 2022. 5. 11. 18:49
더보기 출처 : 데이터 분석을 위한 SQL 레시피 BigQuery에는 원래 ROLLUP() 쿼리가 없었지만 최근에 생긴듯하다. 하지만 coalesce() 쿼리와 함께 쓸 때 coalesce() 쿼리가 제대로 기능하지 않아 지정한 문자가 아니라 null값으로 채워진다. 그래서 ROLLUP 기능을 UNION ALL 쿼리로 구현해보려고 한다. 사용할 데이터 DROP TABLE IF EXISTS ch4.action_log_11_3_1; CREATE TABLE ch4.action_log_11_3_1( session string(255) , user_id string(255) , action string(255) , category string(255) , products string(255) , amount in..
-
[BigQuery] Table 생성데이터 분석/SQL 2022. 5. 7. 17:54
더보기 출처 : 데이터 분석을 위한 SQL 레시피 bigquery table 생성에 대해 살펴보겠다. 미리 말하자면 주의 사항은 data set이라는 구조이다. Table 생성 DROP TABLE IF EXISTS mst_users; # table 존재 여부 확인 및 삭제 CREATE TABLE mst_users( # table 생성 user_id string(255) # BigQuery는 varchar라는 데이터형은 없고 string 데이터형 사용 , register_date string(255) , register_device integer ); INSERT INTO mst_users # table에 데이터 삽입 VALUES # table에 넣을 데이터 입력 ('U001', '2016-08-26', ..
-
[BigQuery] CROSS JOIN을 이용한 Table 열 압축, 정리데이터 분석/SQL 2022. 5. 5. 02:15
더보기 출처 : 데이터 분석을 위한 SQL 레시피 참고 : https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax?hl=ko#cross\_join CROSS JOIN cross join은 두 개의 table의 각 행들을 연결하는 쿼리이다. M개의 행을 가진 table과 N개의 행을 가진 table을 cross join 할 경우 M * N개의 행을 가진 table이 생성된다. 'quarterly_sale' table 생성 drop table if exists ch3.quarterly_sales; create table ch3.quarterly_sales( year integer, q1 integer, q2 integer, q3 ..
-
[PostgreSQL] timestamp 다루기데이터 분석/SQL 2022. 4. 10. 23:46
출처 : https://ko.wikipedia.org/wiki/%ED%83%80%EC%9E%84%EC%8A%A4%ED%83%AC%ED%94%84 데이터 분석을 위한 SQL 레시피 타임스텀프란 특정한 시각을 나타내거나 기록하는 문자열입니다. 데이터베이스를 구축하고 서비스를 진행하는 과정에서 데이터가 생성되는 시간을 데이터와 함께 저장하여 활용하는 경우가 많습니다. 그러한 경우 타임스텀프의 요소, 연, 월, 일, 시간, 분 중 필요한 부분을 추출하여 가공해야하는 상황이 있습니다. 수집해야하는 문자열에 따른 수행 방법에 대해 적어보려고 한다. 현재 시간 수집 # 타임존이 적용된 타임스탬프 수집 SELECT CURRENT_DATE AS dt , CURRENT_TIMESTAMP AS stamp; # 타임존을 적용..
-
[PostgreSQL] CASE문데이터 분석/SQL 2022. 4. 9. 14:10
출처 : 데이터 분석을 위한 SQL 레시피 CASE CASE 문은 규칙을 정하고, 그것을 따라 새 열을 생성할 수 있습니다. 아래의 예시는 각 행의 company열의 값이 1, 2, 3일 경우 company_name 열에 '삼성', '애플', '테슬라' 저장되고 그 외의 것은 '기타'로 저장되도록 작성한 CASE문입니다. Select User_id , CASE WHEN company = 1 THEN ‘삼성’ WHEN company = 2 THEN ‘애플’ WHEN company = 3 THEN ‘테슬라’ ELSE ‘기타’ END AS company_name FROM club_member;
-
[PostgreSQL][ubuntu 20.04.3]설치 및 데이터 베이스 생성데이터 분석/SQL 2022. 4. 4. 18:02
출처 : https://www.youtube.com/watch?v=qw--VYLpxG4 ubuntu 환경에서 설치 # 시스템 소프트웨어 패키지를 업데이트 $ sudo apt update # 'postgresql' 설치 $ sudo apt install postgresql # 'postgresql' 버전 확인 $psql --version database 생성 # 사용자를 'prostgres'로 전환 -> postgresql을 실행하기위해 권한 필요 $sudo -i -u prostgres # 데이터베이스 연결 $psql # 데이터베이스 생성 =# create database test; # CREATE DATABASE test; 둘 모두 가능 # 데이터베이스 확인 =# \ㅣ List of databases N..