일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- pymongo
- NAS
- CSS
- venv
- java
- flaskframework
- atlas
- frontend
- OOP
- synology
- openapi
- javascript
- body
- fetch
- flask
- Project
- mongodb
- Algorithm
- portfolio
- backend
- mysql
- requests
- Crawling
- beautifulsoup
- CRUD
- POST
- get
- json
- PYTHON
- github
Archives
- Today
- Total
wisePocket
[MySQL] 그룹 함수, Group by절, Having 절 본문
MySQL 유용한 함수 및 문법
조건을 설정 할 때 name = 'Lucy'와 같이 단일 조건인 경우엔 = 연산자로 표기하지만 조건이 다수 나타날 땐 name in('Lucy', ...) 처럼 여러개를 나열하는 것이 보기 좋았다.
이 외에 여러가지 방법들이 있어서 하나씩 살펴보았다.
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
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
~별로 구분하라, ~들의 같이 해석되면 사용할 수 있다.
3. HAVING 절
HAVING 절은 해석상 WHERE 절과 동일하다. 단 조건 내용에 그룹 함수를 포함하는 것만을 포함한다.일반 조건은 WHERE 절에 기술하지만 그룹 함수를 포함한 조건은 HAVING 절에 기술한다.
<기본 구조>SELECT [DISTINCT] 컬럼, 그룹 함수(컬럼) FROM 테이블명 [WHERE 조건] [GROUP BY Group대상] [HAVING 그룹 함수 포함 조건] [ORDER BY 정렬대상 [ASC/DESC]]
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
'Database > MySQL - RDBMS' 카테고리의 다른 글
[MySQL] 조건이 다수 등장 할 때, 논리 조건이 필요 할 때 사용 (0) | 2023.08.07 |
---|---|
[MySQL] DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') (0) | 2023.08.07 |
[MySQL] 조건문 정리 if, ifnull, case when, nvl 사용 (0) | 2023.08.07 |
[MySQL] Subquery 서브쿼리 (0) | 2023.08.05 |
[MySQL] select의 join절(Equal Join, Non-Equal Join)과 Union까지 (0) | 2023.08.04 |