반응형

'group by'에 해당되는 글 2건

  1. 2017.11.27 MySQL 그룹화에 조건 설정하기.
  2. 2017.11.27 MySQL 그룹별로 표시하기.
반응형

MySQL 그룹화에 조건 설정하기.

 

그룹별로 데이터 처리하기.

group by로 그룹화하고 검색조건을 설정해 보겠습니다.

Table_01에서 age 평균을 number 별로 계산한 후 평균이 40이상인 데이터만 표시하기 위해서 having 조건 설정합니다.

 

select number, avg(age) from table_01 group by number having avg(age) >= 40;

 

먼저 데이터를 추출하고 그룹화하기.

 

먼저 데이터를 추출하고 그룹화하는 방법은 where 조건으로 데이터를 추출한다음 그룹화 한다는 의미 입니다.

age 40이상인 데이터를 먼저 추출한 다음 그룹화 해 보겠습니다.

select number, avg(age) from table_01 where age >= 40 group by number;

 

그룹화하고 나서 정렬하기.

그룹화하고 나서 정렬하기란 select 명령에 group by order by를 모두 사용하는 것을 말합니다.

 

Age 평균이 40이상인 데이터를 내림차순으로 정렬을 해보겠습니다.

 

select number, avg(age) from table_01 group by number having avg(age) >= 40 order by avg(age) desc;

 

그룹화 과정 정리.

1.     그룹화하는 순서는 먼저 where로 조건을 설정하고 group by로 그룹화합니다.

2.     Group by로 먼저 그룹화하고 having으로 조건을 설정합니다.

3.     그룹화한 결과를 정렬할 때는 order by를 사용합니다.

주요 명령인 wheregroup by, order by의 순으로 명령을 사용합니다.

 

반응형
Posted by 컴스터
,
반응형

MySQL 그룹별로 표시하기.

 

그룹별로 표시하기.

Table_01number 컬럼에는 A1인 데이터가 여러 개 있습니다. 이와 같이 같은 값의 데이터를 그룹으로 만들 수 있습니다. 그룹으로 설정된 데이터는 합계와 평균을 비롯한 각종 데이터 처리를 그룹 단위로 할 수 있습니다.

그룹화할 때는 group by를 사용합니다.

 

select 컬럼명 from 테이블명 group by 그룹화할 컬럼명;

 

컬럼 number를 그룹화 하기 전과 후를 비교해 보겠습니다.

 

select * from table_01;

select * from table_01 group by number;

위와 같이 number에 대해 그룹화를 했을 때 number 데이터는 1종류씩 표시됨을 확인할 수 있습니다. 하지만 그룹화했을 때 그 처리 대상은 같은 그룹에 속해 있는 모든 레코드입니다.

무슨 의미인지는 위쪽 결과를 보시면 A1에 강백호, 강호동, 신동엽이 있습니다만 그룹화 했을 때 대표로 강백호 하나만 나타냈을 뿐 실제로는 A1에 속해 있는 모든 값이 대상입니다.

그러면 그룹별 몇 개가 있는지 count( ) 함수를 사용해 보겠습니다.

 

select number, count(*) from table_01 group by number;

 

그룹별 합계와 평균 표시하기.

그룹화로 합계를 계산하는 함수인 sum( )과 평균을 계산하는 함수 avg( )를 사용해 보겠습니다.

 

나이 합계 구하기.

 

select number, sum(age) as 나이합계 from table_01 group by number;

 

나이 평균 구하기.

 

select number, avg(age) as 나이평균 from table_01 group by number;

 

반응형
Posted by 컴스터
,


반응형