Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- SQL
- Git_명령어정리
- vb.net
- jsp
- java
- 자바
- 배열
- Linux
- github
- json
- CSS
- JavaScript
- Spring_에러정리
- 아파치톰캣
- asp.net
- Git_정리
- MySQL
- HTML
- DML
- 인스턴스
- 이클립스
- spring
- 인덱스
- SQL_용어정리
- 다이어그램
- Spring_오류정리
- 자바스크립트
- Linux_명령어정리
- workbench
- git
Archives
- Today
- Total
데브마우스
[SQL] SELECT와 GROUP BY, HAVING 정리 본문
GROUP BY 절
GROUP BY절은 SELECT와 함께 사용할 때 그룹으로 묶어주는 기능을 제공합니다.
GROUP BY절은 그룹으로 묶어주지만 명확한 기준이 없으면 그룹으로 묶어버렸기에 값을 찾기 힘들 수 있습니다. SQL문을 명확하게 사용하셔야 합니다.
GROUP BY의 위치는 아래와 같습니다.
SELECT 열_이름
FROM 테이블_이름
WHERE 조건식
GROUP BY 열_이름
HAVING 조건식
ORDER BY 열_이름
LIMIT 숫자
GROUP BY절의 집계 함수
집계 함수 | 설명 |
SUM() | 합계를 구합니다. |
AVG() | 평균을 구합니다. "행의 총합/행의 갯수"을 계산한 값을 출력합니다. 실수를 출력시키기에 JSP의 ResultSet과 함께 사용한다면 ResultSet.getFloat("열이름")메서드를 사용하셔야 합니다. |
MIN() | 최소값을 구합니다. |
MAX() | 최대값을 구합니다. |
COUNT() | 행의 개수를 셉니다. |
COUNT(DISTINCT) | 행의 개수를 셉니다.(중복은 1개만 인정합니다.) |
COUNT절 정리
-- member 테이블에는 행(레코드)이 10개 있습니다.
SELECT count(NULL) from member; -- 출력값 0, 컬럼의 이름 count(NULL)
SELECT count(1) from member; -- 출력값 10
SELECT count(0) from member; -- 출력값 10
SELECT count("String") from member; -- 출력값 10, 컬럼의 이름 count("String")
COUNT()절은 행의 값이 없는, 행의 값이 NULL인 행을 세지 않습니다. 이를 이용하여 특정 테이블에서 특정 행에 데이터가 있는 개수를 구할 수 있습니다.
HAVING 절
HAVING 절은 WHERE절과 같은 기능을 제공합니다. 하지만 GROUP BY 절을 사용할 때 WHERE 절과 함께 사용할 수 없기에 HAVING 절을 사용합니다.
아래는 HAVING 절을 사용한 예제 코드입니다.
SELECT mem_id, SUM(price*amount) FROM buy GROUP BY mem_id HAVING SUM(price*amount) > 1000;
SELECT mem_id "회원 아이디", SUM(price * amount) "총 구매 금액" FROM buy GROUP BY mem_id HAVING SUM(price*amount) > 1000 order by sum(price*amount) desc;
'데이터베이스 > SQL: 정리' 카테고리의 다른 글
[SQL] SQL 작성하는 기준 정리 (0) | 2024.01.02 |
---|---|
[SQL] 외래 키 정리 (0) | 2024.01.02 |
[SQL] SELECT와 ORDER BY, LIMIT, DISTINCT 정리 (0) | 2024.01.02 |
[SQL] 인덱스, 뷰, 스토어드 프로시저 정리 (0) | 2024.01.02 |
[SQL] SELECT ~ FROM ~ WHERE 정리 (0) | 2024.01.02 |