1. 그룹 함수(MySQL Numeric Functions)
COUNT(), MAX(), MIN(), AVG(), SUM(), VRIANCE(), STDDEV()
통계치와 관련된 함수들이다. 갯수, 횟수, 최소값, 최대, 합계, 분산, 표준편차 등을 컬럼을 지정하여 구할 수 있다.
반드시 1개의 값을 반환한다.
NULL값이 무시된다.
GROUP BY 절과 함께 사용되어야만 한다.
함수명 | 기능 | 사용 |
COUNT | 행의 수를 계산한다. | COUNT(컬럼 | *) |
MAX | 값들 중에 최대 값을 반환한다. | MAX(컬럼) |
MIN | 값들 중에 최소 값을 반환한다. | MIN(컬럼) |
AVG | 평균 값을 계산한다. | AVG(컬럼) |
SUM | 총 합계를 계산한다. | SUM(컬럼) |
VARIANCE | 분산을 계산한다. | VARIANCE(컬럼) |
STDDEV | 표준편차를 계산한다. | STDDEV(컬럼) |
동물 보호소에 가장 먼저 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.
-- 코드를 입력하세요
#가장 먼저 = DATETIME
SELECT MIN(DATETIME) FROM ANIMAL_INS
SQL
복사
2. GROUP BY 절
특정 속성을 기준으로 그룹화 하여 검색할 때 그룹화 할 속성을 지정
GROUP BY 절은 반드시 그룹함수와 함께 쓰이며 그룹 함수의 결과 값은 GROUP BY 절에 기술된 컬럼의 항목들의 행의 개수에 의해 결정
-- 코드를 입력하세요SELECT
NAME,
IF(COUNT(NAME)>1,COUNT(NAME),NULL) AS COUNT
FROM
ANIMAL_INS
GROUP BY
NAME
HAVING
COUNT(NAME)>=2
ORDER BY
NAME ASC
SQL
복사
~별로 구분하라, ~들의 같이 해석되면 사용할 수 있다.
3. HAVING 절
HAVING 절은 해석상 WHERE 절과 동일하다. 단 조건 내용에 그룹 함수를 포함하는 것만을 포함한다.
일반 조건은 WHERE 절에 기술하지만 그룹 함수를 포함한 조건은 HAVING 절에 기술한다.
<기본 구조>
SELECT [DISTINCT] 컬럼, 그룹 함수(컬럼)
FROM 테이블명
[WHERE 조건]
[GROUP BY Group대상]
[HAVING 그룹 함수 포함 조건]
[ORDER BY 정렬대상 [ASC/DESC]]
SQL
복사
•
HAVING 절은 GROUP BY 절 뒤에 기술한다.
•
HAVING 절의 조건은 그룹 함수를 포함해야 한다.
-- 코드를 입력하세요SELECT
NAME,
IF(COUNT(NAME)>1,COUNT(NAME),NULL) AS COUNT
FROM
ANIMAL_INS
GROUP BY
NAME
HAVING
COUNT(NAME)>=2
ORDER BY
NAME ASC
SQL
복사