GROUP
- 데이터를 특정 attribute로 묶어서 출력 하고 싶을때
SELECT AGE FROM STUDENT WHERE AGE=22; -- 22살인 사람의 정보
SELECT MAX(SCORE) FROM STUDENT AGE=22;
-- 이렇게한다면 나이 22살인 사람이 여러명이게 되면 명확한 대상을 몰라 값을 꺼내 올 수 없다.
-- 이 때 사용하는 것이 GROUP BY절 : 데이터를 GROUPING 하여 출력
SELECT AGE,MAX(SCORE) FROM STUDENT WHERE AGE=22 GROUP BY AGE;
-- 실행 순서는 다음과 같다
WHERE AGE=22 -- 4 : 화면에 요청한 컬럼값을 출력한다.
SELECT AGE,MAX(SCORE) -- 1 : 테이블 선택
FROM STUDENT -- 2 : 조건절
GROUP BY AGE; -- 3 : 선택 당한 데이터들을 그루핑 할 수 있다.
HAVING
그룹함수에 대한 조건을 줄 때 사용
SELECT AGE,SUM(SCORE) FROM STUDENT GROUP BY AGE HAVING SUM(SCORE)>=90;
-- 그룹 함수를 사용하여 조건을 줄 때는 WHERE절을 사용하지 않고
-- HAVING절 을 사용한다.
-- HAVING절 + 조건절
SELECT AGE,SUM(SCORE) FROM STUDENT WHERE AGE!=24 GROUP BY AGE HAVING SUM(SCORE)>=40;
-- 조건절도 같이 사용 가능
SELECT AGE,SUM(SCORE) --5
FROM STUDENT -- 1
WHERE AGE!=24 -- 2
GROUP BY AGE -- 3
HAVING SUM(SCORE)>=0 -- 4 : GROUPING이 먼저 진행이 완료된 상황
ORDER BY SUM(SCORE) ASC; -- 6
-- ★ 실행 순서 매우 중요 !!
ㅇ
'개발자노트 > DBMS' 카테고리의 다른 글
[SQL] Java에 SQL(오라클) 연동하기. (0) | 2022.07.04 |
---|---|
[SQL] [오라클] JOIN 조인 (0) | 2022.07.04 |
[SQL][오라클] DO IT ! 오라클로 배우는 데이터베이스 입문 2장-2 (0) | 2022.07.03 |
[SQL][오라클] DO IT ! 오라클로 배우는 데이터베이스 입문 2장 (0) | 2022.07.03 |
[SQL][오라클] DO IT ! 오라클로 배우는 데이터베이스 입문 1장 (0) | 2022.07.03 |