SQL 기본 문법 정리 ②
- 이번 포스팅에서는 함수와 날짜 함수에 대해 알아보도록 하자.
3. 함수
3.1. 통계 관련 집계 함수
함 수 | | 의 미 |
---|
AVG | | 평균값 |
SUM | | 합계 |
COUNT | | 전체 레코드 수 |
COUNT(*) | | NULL 값을 포함한 전체 레코드 수 |
MIN | | 최소값 |
MAX | | 최대값 |
STDEV | | 표본 표준편차 |
STDEVP | | 모집단 표준편차 |
VAR | | 분산 |
VARP | | 모집단 분산 |
- customer_info에서 테이블의 전체 레코드 수, 고객 나이의 평균과 합을 검색해라.
- customer_onlineinfo 테이블의 전체 레코드 수, email이 존재하는 레코드 수를 검색해라.
3.2. 날짜 함수
- 일자를 원하는 형식으로 변형
- 시간대 별로 GROUP BY를 하고 싶은데,
시간
이 있는 것이 아니라, 초
단위까지 남아있을 때 - DATE_FORMAT()을 사용하여 시간으로 변경해주자.
DATEADD(datepart, number, date)
DATEDIFF( datepart , startdate , enddate )
datepart | | 약어 |
---|
year | | yy, yyyy |
quarter | | qq, q |
month | | mm, m |
dayofyear | | dy, y |
day | | dd, d |
week | | wk, ww |
hour | | hh |
minute | | mi, n |
second | | ss, s |
millisecond | | ms |
microsecond | | mcs |
nanosecond | | ns |
GETDATE()
YEAR, MONTH, DAY(date)
3.2. IF 문, CASE 문, IFNULL 문
3.2.1. IF 문
- member 테이블에서 아이디와 생일을 가져오는데,
- 생일 = null일 경우는 -를 출력, 아니면 생일을 출력
3.2.2. CASE 문
- rank_id = 1 이면 a, rank_id = 2이면 b, 둘 다 아닐 경우 c를 출력
- CASE WHEN 문의 결과를 집계함수로 씌워주면 집계를 구할 수 있다.
3.2.3. IFNULL 문
- price 값이 NULL이면 0, 아니면 price 값을 출력
3.2.4. ISNULL 문
- price 값이 NULL이면 0, NULL이 아니면 price 값을 출력한다.