본문 바로가기

SQL/Oracle

[Oracle] group by(그룹), 집계 함수 count()

728x90

select 그룹 맺을 컬럼명 from 테이블명 group by 그룹맺을 컬럼

select mem_gender from tb_member group by mem_gender;

 

집계함수 : count(), sum(), avg(), max(), min() ..

 

count()

- 조회된 전체행 건수를 반환

count()에는 null값이 들어가지 않을 만한 컬럼을 삽입

select 집계함수 또는 그룹을 맺은 컬럼명 from 테이블명 group by 그룹맺을 컬럼

select mem_gender, count(mem_idx) from tb_member group by mem_gender;

 

[순서]

select 집계함수 또는 그룹을 맺은 컬럼명 from 테이블명 where 절 group by 컬럼 having절 order by 컬럼

 

-- where : 레코드에서 조건 처리
-- group by : where 에서 조건 처리 후 그룹
-- having : 그룹에 대한 조건 처리

 

mem_idx가 1인 사용자 제외 후 성별로 그룹맺기

select mem_gender, count(mem_idx) || '명' as "명" from tb_member where mem_idx <> 1 group by mem_gender;


mem_idx가 1인 사용자 제외 후 그룹 맺은 후 남자 그룹만 출력

select mem_gender, count(mem_idx) || '명' as "명" from tb_member where mem_idx <> 1 group by mem_gender having mem_gender = '남자';

 

반하나, 오렌지를 제외한 멤버 중에서 성별로 그룹을 맺은 뒤 2명 이상의 인원수를 가진 그룹 출력

select mem_gender, count(mem_idx) from tb_member where mem_name not in('김사과', '반하나') group by mem_gender having count(mem_idx) >= 2;

 

728x90

'SQL > Oracle' 카테고리의 다른 글

[Oracle] join  (0) 2022.06.15
[Oracle] oracle함수  (0) 2022.06.13
[Oracle] 컬럼 별명 & 중복 값 제거  (0) 2022.06.13
[Oracle] Oracle student 테이블 생성  (0) 2022.06.12
[Oracle] Oracle의 데이터 타입, 제약 조건  (0) 2022.06.12