SQL 명령어 복기
ROUND -> 소수점 반올림할 경우 round(number,0) 소수점 둘째자리부터 반올림할경우 round(number,1) 뒤에 숫자는 소수점 자리개수를 의미한다.
https://school.programmers.co.kr/learn/courses/30/lessons/151136 예시 풀어보기
Group 한 다음 Group Key로 Count 조건 처리 싶을 경우
HAVING COUNT(*) > 1
이런식으로 처리가 가능하다
https://school.programmers.co.kr/learn/courses/30/lessons/131536 예시 풀어보기
날짜간 계산은 DATEDIFF를 사용한다
사용기간을 구할때 5일에시작해서 6일에 끝났으면 2일이므로 +1을 해줘야한다
DATEDIFF(END_DATE, START_DATE) +1
https://school.programmers.co.kr/learn/courses/30/lessons/157342 예시 풀어보기
Group한 다음 AVG와 같이 집계연산을 할경우 Select에 집계함수를 이용해 별칭을 선언한 후에
HAVING에서 사용하자 (SELECT에서 사용한다면)
https://school.programmers.co.kr/learn/courses/30/lessons/157342 예시 풀어보기
with 절은
with 사용할 CTE 이름 AS (SELECT ~~) 형식으로 사용한다.
https://school.programmers.co.kr/learn/courses/30/lessons/164671 예시 풀어보기
String을 연결하기 위해선 CONCAT 함수를 사용한다.
CONCAT 내부에서 STRING을 ,을 사용해서 붙인다
https://school.programmers.co.kr/learn/courses/30/lessons/164671 예시 풀어보기 \
분기를 처리하기 위해 CASE WHEN ELSE END를 사용한다
CASE
WHEN 조건문 THEN ~
ELSE ~
END 이런식이다.
https://school.programmers.co.kr/learn/courses/30/lessons/151141 예시 풀어보기
SUBSTRING은
substring("String", 시작인덱스(1부터시작), 자를 숫자의 갯수)
예를들어 01033334444를 010-3333-444로 바꾸고 싶다면
concat(substring(TLNO, 1, 3) , "-", substring(TLNO, 4, 4) ,"-", substring(TLNO, 8, 4)) 다음과 같이 작성해야한다.
https://school.programmers.co.kr/learn/courses/30/lessons/164670 예시 풀어보기
GROUP BY한 후 SELECT 할 경우 GROUP BY의 KEY는 우리의 예상대로 나오지만 다른 컬럼들은 랜덤하게 나온다.
따라서 GROUP BY를 한후 SELECT 할 떄 주의 하자, PARTITION BY 를 사용하게 되면 GROUP BY KEY는 동일하지만 다른 모든 COLUMN을 가져올 수 있다.
https://school.programmers.co.kr/learn/courses/30/lessons/131116 예시 풀어보기