문자열을 연결하는 쿼리
SELECT user_id
, CONCAT(pref_name, city_name) AS pref_city
FROM
mst_user_location
;
q1보다 q2의 매출이 많은 경우에 '+', 같은 경우에는 공백, 적은 경우에는 '-'를 출력합니다.
SIGN함수는 매개변수가 양수라면 1, 0이라면 0, 음수라면 -1를 리턴하는 함수 입니다.
SELECT year, q1,q2
,CASE WHEN q1 < q2 THEN '+'
WHEN q1=q2 THEN ' ' ELSE '-' END judge_q1_q2
,q2 - q1 diff_q2_q1, SIGN(q2 - q1) sign_q2_q1
FROM quarterly_sales
ORDER BY year;
연간 최대/최소 4분기 매출 찾기
컬럼 값에서 최댓값 또는 최솟값을 찾을 때는 greatest 함수 또는 least 함수를 사용합니다.
대부분 SQL 쿼리 엔진에서 구현되고 있습니다.
SELECT year
,greatest(q1, q2, q3, q4) greatest_sales
,least(q1, q2, q3, q4) least_sales
FROM quarterly_sales
ORDER BY year;
연간 평균 4분기 매출 계산하기
단순하게 구하기
SELECT year, (q1 +q2 +q3 + q4) / 4 average
FROM quarterly_sales
ORDER BY
year;
SELECT dt, ad_id , clicks / impressions AS ctr
,CAST(clicks AS double precision) / impressions AS ctr , 100.0 * clicks / impressions AS ctr_as_percent
FROM advertising_stats
WHERE
dt = '2017-04-01'
ORDER BY
dt, ad_id ;
0으로 나누는 것 피하기
2017년 4월 2일 데이터는 impressions이 0 입니다.
0으로 나누게 되면 오류가 발생합니다. case 식으로 사용해서 0인지 아닌지 확인하는 것이 좋습니다,
SELECT dt, ad_id
,CASE WHEN impressions > 0 THEN 100.0 * clicks / impressions END AS ctr_as_percent_by_case
,100.0 * clicks / NULLIF(impressions, 0) AS ctr_as_percent_by_null
FROM advertising_stats
ORDER BY dt, ad_id ;
일차원 데이터의 절댓값과 제곱 평균 제곱근을 계산하는 쿼리
SELECT abs(x1 -x2) AS abs,
sqrt(power(x1-x2, 2)) AS rms
FROM location_1d ;
이차원 테이블에 대해 제곱 평균 제곱근(유클리드 거리)을 구하는 쿼리