sql 문제 풀다가 몰랐던 함수나 문법들_1

안호성·2023년 8월 6일
0

SQL 개발 일지

목록 보기
6/6

HAVING 절

HAVING은 GROUP BY절을 사용해 그룹화된 필드에 WHERE 처럼 조건을 걸어줄 때 사용한다. WHERE과 달리 COUNT나 SUM 같은 집계 함수도 사용할 수 있다.

SELECT user_id , SUM(LIKES) FROM checkins c 
GROUP BY user_id 
HAVING SUM(likes) >= 8


시간 값 추출

날짜 데이터에서 년도나 월, 일, 시간 등을 추출 할 경우에 쓴다.

SELECT created_at, YEAR (created_at),
       MONTH (created_at), DAY (created_at) 
 FROM users u


물론 HOUR, MINUTE, SECOND로 시, 분, 초도 추출 가능하다.
추출 시에 숫자 형식의 데이터로 바뀌는 것 같다.


숫자 관련 함수

  • ABS(숫자) : 절대값

  • CEILING(숫자) : 값 보다 큰 숫자 중 가장 작은 정수

  • FLOOR(숫자) : 값 보다 작은 정수 중 가장 큰 수

  • ROUND(숫자,자릿수) : 자릿수에 적은 자리 까지 반올림,
    자릿수가 음수인 경우 소숫점 이하는 버리고 정수에 뒤에서부터 지정된 자릿수까지 반올림

  • TRUNCATE(숫자,자릿수) : 자릿수가 양수인 경우 해당 자릿수에서 소수점 버림,
    자릿수가 음수인 경우 소숫점 이하를 버리고 정수에 뒤에서부터 지정된 자릿수까지 0으로 처리

SELECT ABS(-3.145), CEILING(3.145), FLOOR(3.145),
	   ROUND(3.145,2), ROUND(33.145,-1), 
	   TRUNCATE(3.145,1),TRUNCATE(33.145,-1)

더 많은 숫자 관련 함수


CONCAT

문자열을 연결하고 싶을 때 사용하는 함수로
CONCAT( 문자열1, 문자열2, ...) 으로 사용 가능하다.

SELECT title, description, concat(title," : ",description) 
 from courses  


! CONCAT에 NULL이 포함되어 있으면 NULL로 리턴 !

CONCAT_WS

CONCAT처럼 문자열을 연결할 때 사용 할 수 있으며 반복되는 특정한 문자가 있을 때 편리하다.
CONCAT( 구분자, 문자열1, 문자열2, ...) 으로 사용가능하다.

SELECT title,description ,concat_WS(":",title,description) 
from courses

! CONCAT_WS는 NULL이 포함되어 있어도 NULL 정상적으로 작동!

profile
발전된 내일을 바라며

0개의 댓글