기본 콘텐츠로 건너뛰기

라벨이 cast인 게시물 표시

SQL CAST - 데이터 형식 바꾸기

SQL에서 CAST함수를 이용해서 데이터 형식(타입)을 바꿀 수 있다. CAST함수의 문법은 아래와 같다. CAST(expression AS datatype) 예시를 통해 살펴보자. 아래와 같이 "30 / 4"를 계산하면 7.75가 아니라 7이 산출된다. 1 select 31 / 4 ; 숫자 30과 4의 data type이 정수(int)이기 때문에 7.75에서 데이터 타입을 정수로 맞추기 위해 소수점을 버려 7을 산출하게 되는 것이다. 쿼리를 아래로 바꿔보자. 1 select cast ( 31 as float) / cast ( 4 as float); 이번에는 7.75로 잘 산출된다. 나누기를 하기 전 cast()함수를 통해 숫자를 소수(float)로 바꿔줬기 때문이다. 즉  31.0 / 4.0을 계산한 것과 같다. cast( 31 as float)는 정수 31을 소수(float) 31.0으로 바꿔주는 쿼리이다. 바꿀 수 있는 데이터 타입은 float외에, int, char 등 모든 데이터 타입이 가능하다. 끝.

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 ; 아래와 같이 결과를 확인할 수 있다.