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( 문자열1, 문자열2, ...) 으로 사용 가능하다.
SELECT title, description, concat(title," : ",description)
from courses
! CONCAT에 NULL이 포함되어 있으면 NULL로 리턴 !
CONCAT처럼 문자열을 연결할 때 사용 할 수 있으며 반복되는 특정한 문자가 있을 때 편리하다.
CONCAT( 구분자, 문자열1, 문자열2, ...) 으로 사용가능하다.
SELECT title,description ,concat_WS(":",title,description)
from courses
! CONCAT_WS는 NULL이 포함되어 있어도 NULL 정상적으로 작동!