공부 흔적남기기

SQL 명령어 복기 본문

코테/프로그래머스

SQL 명령어 복기

65살까지 코딩 2025. 2. 4. 22:19
728x90
반응형

 

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 예시 풀어보기

728x90
반응형