반응형
츄르사려고 코딩하는집사입니다.
오라클(Oracle)에서 테이블을 핸들링할 때, 특정 컬럼을 기준으로 합계, 평균 등을 구해야 하는 경우가 발생한다. 이 경우에 사용하는 것이 GROUP BY를 사용하여 합계 및 평균 등을 구할 수 있다.
먼저, NAME(이름), CLASS(반), SCORE(점수)라는 컬럼을 가지고 있는 테이블을 만듭니다.
CREATE TABLE TEST(
CLASS VARCHAR(10) DEFAULT ' ' NOT NULL,
NAME VARCHAR(10) DEFAULT ' ' NOT NULL,
SCORE VARCHAR(10) DEFAULT ' ' NOT NULL
);
그 다음에, 데이터를 INSERT 합니다.
INSERT INTO TEST VALUES('1', 'A', '80');
INSERT INTO TEST VALUES('1', 'B', '75');
INSERT INTO TEST VALUES('1', 'C', '70');
INSERT INTO TEST VALUES('2', 'D', '95');
INSERT INTO TEST VALUES('3', 'E', '90');
INSERT INTO TEST VALUES('3', 'F', '85');
INSERT INTO TEST VALUES('2', 'G', '55');
INSERT INTO TEST VALUES('2', 'H', '50');
INSERT INTO TEST VALUES('1', 'I', '60');
이렇게 하면, NAME, CLASS, SCORE 컬럼을 가지고 있는 TEST 라는 테이블에 총 9개의 데이터가 입력이 됩니다.
이제 이 TEST라는 테이블에서 CLASS 별로 스코어 합계를 출력하고 싶으면 아래의 쿼리문을 사용하면 됩니다.
SELECT CLASS, SUM(SCORE)
FROM TEST
GROUP BY CLASS
ORDER BY SUM(SCORE);
TEST라는 테이블에서 CLASS와 SUM(SCORE)라는 컬럼을 출력을 할건데, CLASS로 GROUP BY로 설정하고, SUM(SCORE) 컬럼을 기준으로 오름차순으로 정렬한다.
즉, GROUP BY 절은 아래와 같이 사용하면 된다.
SELECT A, SUM(컬럼)
FROM TABLE
GROUP BY A;
여기서 GROUP BY를 하고, GROUP BY를 한 컬럼에 조건을 추가하고 싶으면 HAVING 절을 사용하면 된다.
SELECT CLASS, SUM(SCORE)
FROM TEST
GROUP BY CLASS
HAVING SUM(SCORE) >= 60
ORDER BY SUM(SCORE);
TEST라는 테이블에서 CLASS와 SUM(SCORE)라는 컬럼을 두고, CLASS를 GROUP BY하는데, SUM(SCORE)가 60 이상인 것들을 SUM(SCORE)를 오름차순 기준으로 출력한다.
이런식으로, 오라클(Oracle)에서 GROUP BY를 사용하면 된다.
반응형
'IT > Oracle' 카테고리의 다른 글
[오라클/Oracle] 오라클(Oracle) tnsnames.ora 위치 및 tnsnames.ora 파일이 없는 경우 (4) | 2023.02.23 |
---|---|
[ORACLE/SQL] 오라클(Oracle) 날짜포맷 SYSDATE 사용 및 나라별 시차 계산 방법 (0) | 2023.02.08 |
[오라클/Oracle] 오라클(Oracle) 버전 확인하는 방법 (0) | 2022.09.14 |
오라클(Oracle) 유니온(UNION, UNION ALL) 사용법 (0) | 2021.11.09 |
오라클(Oracle) NVL 정리 (0) | 2021.10.07 |
오라클(Oracle) 올림, 내림, 반올림, 버림 함수 (0) | 2021.09.23 |
오라클(Oracle) SQL := 이란? (0) | 2021.09.23 |
오렌지(Orange)에서 엑셀 데이터 옮길 때 데이터 Row가 줄어드는 이유 및 해결 방법(ORA-12899 열에 대한 값이 너무 큼) (0) | 2021.09.14 |
최근댓글