일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- gpt3.5turbo
- aws
- 웹소켓재시작
- git
- aiapi
- db
- Express
- 호스팅영역
- javascript
- 패키지설치에러
- 노드버전
- gitlab
- 버킷생성
- nvmrc
- 클라우드
- class
- iam사용자
- 웹소켓연결
- java
- 자바
- openaiapi
- Github
- chatGPTAPI
- GPT3.5
- 클래스
- gptapi
- nodejs
- Database
- ChatGPT
- 웹소켓연결끊김
Archives
- Today
- Total
IT's Jenna
Mysql - GROUP BY & CASE 본문
GROUP BY
- sql에서 그룹별로 개수를 알고 싶을 때 count함수와 함께 사용하는 것이 GROUP BY 이다.
설명보다 예시를 보면 명확이 이해가 될 것이기 때문에 바로 예시로 넘어가도록 하겠다.
다음과 같이 Type 별로 정리가 되어있는 group1 테이블을 하나 만들었다.
위의 그래프에서 Type 별 개수를 확인하고 싶은 경우 아래와 같이 COUNT함수와 함께 GROUP BY를 사용해서 type별로 묶어준다.
결과는 아래 그림과 같다.
SELECT group1.type, COUNT(group1.name) AS cnt FROM group1 GROUP BY type;
GROUP BY와 함께 사용할 수 있는 조건식이 2개가 있다. 하나는 이전에 포스팅에서 언급했던 WHERE이고, 다른 하나는 HAVING이다. 두 조건식의 차이점은 WHERE은 그룹화하기 전에 조건을 주는 것이고, HAVING은 그룹화하고 나서 조건을 주는 것이다.
아래 그림은 WHERE과 HAVING의 사용을 3가지 케이스로 나눈 것이다.
- Case 1. 그룹화 전 WHERE을 사용해서 조건 적용
- Case 2. 그룹화 후 HAVING으로 조건 적용
- Case 3. 그룹화 전 WHERE, 그룹화 후 HAVING 조건 적용
CASE
sql에서도 java script의 switch처럼 조건문을 달아주는 쿼리인 CASE가 있다. CASE는 다음과 같이 사용한다.
Case 칼럼명
WHEN 값1 THEN 출력1
WHEN 값2 THEN 출력2
ELSE 출력3
END
예제를 한번 보자.
SELECT CASE AAA WHEN '1' THEN a WHEN '2' THEN b ELSE c END FROM table_name;
설명 - AAA 칼럼의 값이 '1' 이면 a, '2' 이면 b, 둘 다 아닐 경우 c를 출력
<참고>
https://extbrain.tistory.com/56
'Mysql' 카테고리의 다른 글
Mysql 이벤트 스케쥴러 (Event Scheduler) (0) | 2021.06.23 |
---|---|
Mysql - LIMIT (0) | 2021.05.12 |
Mysql - group_concat (0) | 2021.04.26 |
Mysql - ORDER BY & ALIAS (0) | 2021.04.26 |
Mysql 기본 (0) | 2021.01.21 |
Comments