TIL

사전캠프 2일차

도원좀비 2025. 1. 21. 19:43

숫자 계산과 정렬

 

집계함수

함수종류 설명
SUM 컬럼의 조건에 맞는 합계를 구함
AVERAGE 컬럼의 조건에 맞는 평균을 구함
COUNT 컬럼의 조건에 맞는 갯수를 구함(중복제외는 distint)
MIN 컬럼의 조건에 맞는 최솟값을 구함
MAX 컬럼의 조건에 맞는 최댓값을 구함
select sum(칼럼)
from 테이블;
select avg(칼럼)
from 테이블;
select count(칼럼)
from 테이블;
select min(칼럼)
from 테이블;
select max(칼럼)
from 테이블;

GROUP BY로 그룹화하기

테이블의 특정 컬럼 값을 기준으로 동일하 값을 가진 행들을 하나의 그룹으로 묶습니다.

select 컬럼1,
          sum(컬럼)
from 테이블
group by 컬럼1;

ORDER BY로 정렬하기

select 컬럼1,
          sum(컬럼)
from 테이블
group by 컬럼1
order by 정렬할 컬럼(ex 컬럼1 or sum(컬럼);
오름차순 생략
내림차순 desc

데이터 가공하기

함수 이름 설명
REPLACE 문자열 내 특정 부분을 다른 문자열로 대체
SUBSTRING 문자열에서 지정된 위치부터 지정된 길이만큼 잘라냄
CONCAT 여러 문자열을 하나로 연결
select  컬럼
           replace(컬럼, '현재 값', '바꿀 값')
from 테이블
select  컬럼
           substr(컬럼, 1, 2)
from 테이블
select  컬럼
           concat('[', substr(컬럼, 1, 2) ,']')
from 테이블

조건 부여하기

함수 이름 설명
IF 조건에 따라 값을 반환
CASE 여러 조건을 복잡한 조건에 따라 값을 반환
select  컬럼1
            if(컬럼 조건, 참일 때, 거짓일 때)  "별명"
from 테이블
select  컬럼1
            case when 조건1 then 값(수식)
                     when 조건2 then 값(수식)
                     else 값(수식) end "별명"
from 테이블

여러 번의 연산을 한 번의 SQL 문으로 수행하기(Subquery)

연산이 한 번에 끝나면 참 좋은데 아닐 때가 많죠. 문자 변경한 다음에 숫자 연산 하고 그 결과로 또 연산을 해야할 때 효육적으로 사용 가능하다.

select 컬럼1,
           조건문 or 함수
from ( /* subquery */
select 컬럼1,
           조건문 or 함수
from 테이블 ) a

두개의 테이블 조회하기

Join 종류 설명
INNER JOIN 두 테이블에서 공통된 값을 가진 행만 반환
LEFT JOIN 왼쪽 테이블의 모든 행과, 일치하는 오른쪽 테이블의 행 반환. 일치하지 않는 경우 NULL 포함
RIGHT JOIN 오른쪽 테이블의 모든 행과, 일치하는 왼쪽 테이블의 행 반환. 일치하지 않는 경우 NULL 포함
FULL OUTER JOIN 두 테이블의 모든 데이터를 반환. 일치하지 않는 데이터는 NULL로 표시.
select *
from 테이블1 inner join 테이블2
on 테이블1_id = 테이블2_id
select *
from 테이블1 left join 테이블2
on 테이블1_id = 테이블2_id
select *
from 테이블1 full outer join 테이블2
on 테이블1_id = 테이블2_id