본문 바로가기

SQL12

[SQL] 여러 개의 테이블 조작하기 책 '데이터 분석을 위한 sql 레시피'를 참고했습니다.(8강) 4강에서 언급했듯이 DB의 데이터들은 크게 업무 데이터, 로그데이터로 나누어 진다. 업무 데이터 사용 시 업무데이터는 RDB를 사용해 관리하는 경우가 많다. RDB는 일반적으로 데이터를 정규화 하고, 여러 테이블로 나누어 데이터를 관리해 여러 테이블들을 결합하여 원하는 정보를 추출 한다. ex) SNS 사이트를 생각하면 댓글,좋아요,팔로우 데이터 라는 각각의 테이블에 저장된 정보를 기반으로 어떠한 행동을 사용자가 하는지 분석하려면 이러한 것들을 하나로 합쳐 다룬다. 로그 데이터 사용 시 다양한 행동 하나하나를 기록하는 거대한 데이터이다. 이와같은 경우도 여러 처리를 실행하려면 여러개의 select나 셀프조인을 통해 비교해야한다. 테이블이 하.. 2023. 2. 9.
[SQL] 하나의 테이블에 대한 조작(2) 책 '데이터 분석을 위한 sql 레시피'를 참고했습니다.(7강) 7강(1) 부분에서는 데이터를 조건에 맞게 추출하는 내용에 대해 알아보았다. 이번 내용은 데이터를 사용하기 좋게 변환하는 방법을 알아볼 것 이다. 1. 데이터 기반 변환하기 (1) 행을 열로 변환 sql에서는 행 단위 기반(세로기반 데이터) 으로 처리하는 것이 기본이다. 하지만 최종 출력때는 열로 전개해야 가독성이 높은 경우가 많다. sql에서 열은 고정적이어야 한다. 따라서 열로 전개할 데이터의 종류 또는 수를 명확하게 미리 아는 경우 다음과 같은 방법을 사용할 수 있다. select * from sql-study-project-376507.sql_study_bigquery.daily_kpi; 위 데이터는 날짜별 노출 수, 세션 수, 사용.. 2023. 2. 9.
[SQL] 하나의 테이블에 대한 조작(1) 책 '데이터 분석을 위한 sql 레시피'를 참고했습니다.(7강) sql의 특징은 데이터를 집합으로 다룬다는 것이다. 앞선 강의 까지는 데이터 하나하나의 조작을 다루었는데 실무에서는 수십만개, 많게는 수억개의 레코드를 다루는데 이를 하나하나 처리하는것은 말도 안되게 많은 시간이 든다. 따라서 대용량의 데이터를 집계하고 그 중 몇가지 지표를 사용해 데이터 전체의 특징을 파악할 수 있어야 한다. 7~8강 에서는 데이터의 집약 / 가공등을 배울 것이다. 1. 여러 레코드를 기준으로 하나의 값을 리턴시키는 집약 함수 (1) 집약 함수 select * from sql-study-project-376507.sql_study_bigquery.review; 위 테이블에 자주 사용하는 집약함수를 적용해 밑과 같은 테이블을.. 2023. 2. 9.
[SQL] 여려 개의 값에 대한 조작 책 '데이터 분석을 위한 sql 레시피'를 참고했습니다.(6강) 데이터를 분석할 때에는 하나의 값 뿐 만 아닌 여러개의 값을 집약해 하나의 값으로 만들거나,비교하는 여러개의 데이터에 대한 조작 할 상황이 많다. 이번파트에서는 전 파트와 달리 여러개의 값을 같이 가공하는 쿼리문에 대해 배워 볼 것이다. 1. 문자열 연결하기 리포트를 작성할 때는 용도에 맞게 여러 데이터를 연결하여 다루기 쉬운 형식으로 많이 바꾼다. select * from sql-study-project-376507.sql_study_bigquery.mst_user_location; 위 데이터의 최종 주소를 만들기 위해 문자열을 연결해 보겠다. select user_id, concat(pref_name,' ',city_name) as pr.. 2023. 2. 9.