기본 콘텐츠로 건너뛰기

라벨이 집계인 게시물 표시

SQL Combining aggregates - 집계를 결합(비율 구하기)

1. SQL은 Aggregation(집계)를 할 수 있다. SUM(), AVG(), MIN(), MAX()가 대표적이다. aggregation을 결합시켜 사용할 수 있다. 2.  aggregation을 결합해서 비율(ratio)을 구해보자. 예시로 전체 매출 대비 여성 유저의 매출 비율은 구해보자. 아래와 같이 샘플 테이블을 마련한다. 1 2 3 4 5 6 7 CREATE TABLE users(id integer, gender text, sales integer); INSERT INTO users VALUES ( 1 , 'female' , 160 ); INSERT INTO users VALUES ( 2 , 'male' , 170 ); INSERT INTO users VALUES ( 3 , 'female' , 160 ); INSERT INTO users VALUES ( 4 , 'male' , 190 ); INSERT INTO users VALUES ( 5 , 'female' , 200 ); 3. SUM(여성 매출) / SUM(전체 매출)을 구해야 한다. - 여성 매출을 구하기 위해 gender가 female인 케이스만 골라 sales를 그래도 두고 나머지 케이스는 sales를 0으로 만든다. 그러고 sum한다. - 전체 매출은 모든 sales 값을 sum한다. 4. 위 로직을 쿼리로 만들면 아래와 같다. 1 2 3 SELECT cast ( sum ( case gender when 'female' then sales else 0 end ) as float) / cast ( sum (sales) as float) * 100 as ratio_female_sales FROM users ; 아래와 같이 결과를 확인할 수 있다.