반응형

@notepad_jj2

츄르사려고 코딩하는집사입니다.


오라클(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를 사용하면 된다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기