본문 바로가기

프로그래밍/SQL 함수 쌓기4

NULL 혹은 빈 문자열 제외 하는 방법들 ( 함수 / LENGTH ) 종종 데이터를 처리할 때 null을 제외한 값, 빈 문자열을 제외한 값 혹은 null 값만, 빈 문자열 값만 불러와야 할 때가 있다. 일반적으로, 우리가 아는 그 방법으로 하면 된다. 하지만 종종 어떤 DB를 쓰냐에 따라 DB에서 null 혹은 빈값을 처리하는 방식이 달라서 쿼리 작성 시에도 꼭 유의해야 할 필요가 있다. NULL 값만 불러오기 의미 : a1 컬럼의 값이 null 인 경우만 가져와라 ---방법 1. SELECT FROM db_name WHERE a1 is null ---- a1컬럼의 null값만 의미 : a1 컬럼의 값이 빈 값인 경우만 가져와라 ---방법 2. SELECT FROM db_name WHERE a1='' ---- a1컬럼의 null 값만 의미 : a1 컬럼에 있는 값의 길이.. 2020. 9. 28.
DAU 집계하기 / COUNT 활용 (distinct) DAU 란? Daily Actuve Users의 약자로 일일 활성 유저를 의미한다. DAU는 일반적으로 대부분의 플랫폼회사에서 중요한 핵심 지표로 여기는 지표 중에 하나다. DAU의 측정 기준은 각 회사마다 세운 조건에 따라 달라질 수 있으며 집계 방식은 가장 간단한 방식으로 아래와 같이 집계할 수 있다. 집계를 위한 정의를 자세히 적어보자면 다음과 같다. DAU : 하루동안 어플리케이션에 접속한 유저의 ID를 중복을 제거하고 집계한 수. * 플랫폼회사라 함은 쇼핑, 게임, SNS 등 우리의 휴대폰에 설치된 앱을 개발 및 서비스하는 회사를 의미하는 단어로 사용하였습니다. * table : user_daily - 일별 접속 기록 테이블 * sample dt user_id 2020-07-01 87643 20.. 2020. 9. 6.
일자별 시간별 10분 단위 집계하기 / CASE WHEN 구문, SUBSTR , CONCAT 활용 테이블 구성이 아래와 같다고 해보자 (예시를 위해서 간단하게 작성했을 뿐 실제 로그에는 더 많은 정보가 담겨 있습니다) * Table name : sample1 time userid 2020-08-22 10:01:30.33 14321 2020-08-22 10:15:56.11 12341 2020-08-22 10:17:21.33 43563 2020-08-22 10:20:32.34 23456 원하는 결과물 > dt hhmm au 2020-08-22 10:00 1 2020-08-22 10:10 2 2020-08-22 10:20 1 일자별 시간별 10분 단위 집계 방법 작업하면서 유용하다고 생각했던 SQL 조건절입니다. 개인에 따라 추구하는 성능, 함수 등의 차이로 서로 옳다고 생각하는 방법이 다를 수 있습니다... 2020. 8. 30.
SQL 실무 함수 정리에 앞서 (PostgreSQL, HiveQL, Redshift) 포스팅의 목적/ 학부 시절 SQLD를 취득해 Data Analysis 직무 쪽으로 취업 후 별다른 발전없이 살아온 것 같아 자기발전을 위해 1) 그동안 사용해왔던 함수들을 정리하고 2) 지금까지는 성능을 고려하지 않은 쿼리를 짜왔다면 이제부턴 성능을 고려한 쿼리를 짜기 위해 내가 어떤 점들을 개선해 나가면 좋을지를 정리하고 싶어졌다! 약간의 중장기적인 목적으로는 심심하기도 하고 성장을 위해 SQLP 취득도 고려 중! 그동안의 사용 경험/ * 학부시절 : mySQL * 실무 : PostgreSQL(Redshift) , Apache HiveQL - 대부분은 유사하나 이것저것 쓰다보니 앞으로의 포스팅에서 혼재될 수 있음을 이해부탁드립니다. 시스템/1) PostgreSQL- 오픈소스 RDB로 다양한 플랫폼을 지.. 2020. 8. 16.