오라클(Oracle) 데이터 정렬 ORDER BY, 그룹핑 GROUP BY , HAVING 사용 방법

오라클(Oracle) 데이터 정렬 ORDER BY, 그룹핑 GROUP BY , HAVING 사용 방법


이번 오라클 내용은 비교적 간단한 내용입니다.
바로 데이터 정렬할 때 사용되는 ORDER BY 와 그룹화 할 때 사용되는 GROUP 그리고 GROUP BY 와 함께 사용하는 HAVING 절입니다.
사용방법이 간단하기 때문에 크게 어려울건 없구요. 어떻게 사용되는지 보도록 하겠습니다.

테스할 테이블과 데이터 입니다.
데이터를 조회하면 이름, 영문값, 숫자, 영문 명이 들어 있습니다.
지난 강좌에서 사용했던 테이블에 데이터를 조금 수정했습니다.

데이터 정렬 ORDER BY, 그룹핑 GROUP BY , HAVING 사용 방법


 

 


1. ORDER BY
데이터 정렬할 때 사용되는 명령어로 SELECT 절과 함께 사용합니다.

사용 방법은 다음과 같이 사용합니다.

SELECT *
  FROM TABLE_NAME 
ORDER BY 컬럼1 [ASC/DESC], 컬럼2 [ASC/DESC]...

 

ASC 와 DESC 가 있는데요. 숫자,영문, 한글 모두 적용 됩니다.
ASC: 오름차순 입니다. 뒤로 갈수록 커지는 순서입니다.(EX: 1,2,3,4)
DESC : 내림차순 입니다. 큰숫자가 먼저 나오고 갈수록 작은 값이 나옵니다.(EX: 4,3,2,1)

ORDER BY


 

 

이름이 있는 COL1 컬럼을 오름차순으로 순서대로 정렬해보겠습니다.

>>SELECT * FROM TEST1
  ORDER BY COL1 [ASC]

실행하면 COL1 컬럼에 가나다 순으로 정렬 됩니다.
ASC는 생략 가능합니다.

ASC는 생략 가능합니다.


 

 

두개의 컬럼을 정렬할 수 있는데요.
ORDER BY에서 지정한 첫번째 컬럼에서 동일한 값이 나올 경우 두번째 컬럼값에서 다시 정렬합니다.

COL1 컬럼에서 동일한 값이 나올경우 COL3를 오름차순으로 정렬해보겠습니다.

>> SELECT *
  FROM TEST1
ORDER BY COL1,COL3

실행하면 김소정이란 데이터가 동일한데 COL3컬럼에 숫자가 오른차순으로 정렬된것을 확인할 수 있습니다.

COL3를 오름차순으로 정렬해보겠습니다


 

 


컬럼을 숫자로 변경해서 사용할 수 있는데요. 첫번재 조회된 컬럼부터 1,2.. 가 됩니다.

먼저 COL3,COL2 컬럼을 정렬해보겠습니다.

첫번재 조회된 컬럼부터 1,2.. 가 됩


 

 

이제  숫자로 변경해서 정렬해보겠습니다.

COL3컬럼은 3번째, COL2 컬럼은 2번째 입니다.
결과는 동일하게 나옵니다.


숫자로 변경해서 정렬해보겠습니다


 

 


2. GROUP BY
데이터를 조회하고 그룹화합니다. 합계, 평균, 개수등을 구할 대 사용됩니다.

GROUP BY


 


가장 많이 사용되는 쿼리를 알아보겠습니다.
동리한 값이 있을 때 값은 몇개씩 있는지 확인하는 쿼리입니다.
COL2 컬럼에 동일한 값이 몇개씩 있는지 확인해보겠습니다.

>> SELECT COL2, COUNT(*) FROM TEST1 GROUP BY COL2

실행하면 A는 3개, B는 3개 C는 1개가 있는것을 확인할 수 있습니다.

 동일한 값이 몇개씩 있는지 확인해보겠습니다


 

COL2로 동일한 값들일 대 COL3의 평균값을 내어보겠습니다.

>> SELECT COL2, AVG(COL3) FROM TEST1
   GROUP BY COL2

 COL3의 평균값을


 

 

3. HAVING 절
HAVING는 GROUP BY와 함께 사용하는데요. GROUP  BY로 그룹화된 데이터에 조건을 걸 때 사용됩니다.

평균값을 낸 쿼리에서 HAVING절을 이용해서 평균 55점 이상 조건에 만족하는 값만 조회하도록 하겠습니다.

>> SELECT COL2, AVG(COL3) FROM TEST1
   GROUP BY COL2
   HAVING AVG(COL3)>=55

실행을 하면 평균값이 55 이상인 값만 조회되는것을 확인할 수 있습니다.

 HAVING 절

이상 오라클(Oracle) 데이터 정렬 ORDER BY, 그룹핑 GROUP BY , HAVING 사용 방법을 알아보았습니다.