본문 바로가기

Database5

Order by 함수와 OVER, 윈도우 함수 OVER함수는 서브쿼리를 쉽게 사용하게 해준다. OVER절은 FROM,WHERE,GROUP BY, HAVING 절 이후에 계산되므로 쿼리 짤 때 주의 GROUP BY를 OVER안에서 사용하고 싶을 때는 -> PARITION BY 예시1: SUM(SALARY) OVER (PARITION BY TEAM)하면 TEAM별 연봉총합 나옴 예시 2 SELECT EMPLOYEE_ID, JOB_ID, SUM(SALARY) OVER() 전체총합 SUM(SALARY) OVER(PARTITION BY JOB_ID ORDER BY JOB_ID) 직무별 총합 FROM EMPLOYEE_ID *출처: https://jhnyang.tistory.com/469 https://www.oracletutorial.com/oracle-agg.. 2022. 3. 7.
그룹 테이블 함수 조작 데이터셋 DROP TABLE IF EXISTS review; CREATE TABLE review ( user_id varchar(255) , product_id varchar(255) , score numeric ); INSERT INTO review VALUES ('U001', 'A001', 4.0) , ('U001', 'A002', 5.0) , ('U001', 'A003', 5.0) , ('U002', 'A001', 3.0) , ('U002', 'A002', 3.0) , ('U002', 'A003', 4.0) , ('U003', 'A001', 5.0) , ('U003', 'A002', 4.0) , ('U003', 'A003', 4.0) ; SELECT count(*) AS total_count , c.. 2022. 3. 7.
여러개의 값 비교 postgreSQL, 출처 - 데이터분석을 위한 SQL 레시피 SELECT years,q1,q2, CASE WHEN q10 THEN 100.0 * clicks/impressions # case-end문 사용 END AS ctr_as_percent_by_case, 100.0*clicks/NULLIF(impressions,0) AS ctr_as_percent_by_null # nullif함수 사용 FROM advertising_stats 2022. 3. 7.
결손 값(Null) 디폴트값으로 대체하기 데이터 셋 아래와 같은 구매로그 및 쿠폰사용 여부일 때 null과 문자열,숫자와의 연산은 나머지도 null로 만든다. null값을 coalesce함수를 통해 0으로 대치 SELECT purchase_id ,amount,coupon, amount - coupon AS discount1, amount - COALESCE(coupon,0) AS discount2 FROM purchase_log_with_coupon ; 2022. 3. 7.
Timestamp * 해당카테고리의 모든 작성은 PostgreSQL 기준입니다. ##시스템 상 현재날짜 타임스탬프 추출 SELECT stamp,url, split_part(substring(url FROM '//[^/]+([^?#]+)'), '/',2) AS path1 split_part(substring(url FROM '//[^/]+([^?#]+)'),'/',3) AS path2 FROM access_log; #지정한 문자열로 날짜시각 데이터 추출 SELECT stamp,url, split_part(substring(url FROM '//[^/]+([^?#]+)'), '/',2) AS path1 split_part(substring(url FROM '//[^/]+([^?#]+)'),'/',3) AS path2 FROM.. 2022. 3. 7.