본문 바로가기
데이터베이스

[DB] 특정 컬럼에서 동일한 데이터끼리 묶어 개수 조회하기(feat: Group By, Count)

by BeforB 2023. 7. 27.
728x90

 

 

 

Group By와 Count를 사용하여 특정 컬럼에서 동일한 데이터끼리 묶어 개수 조회하기

 

 

 

 

테이블 및 컬럼 정보

귀찮으므로 ERD 는 생략하고 아래 테이블 정보로 대신한다.

 

school (학교 테이블)

- school_id (학교 번호) - PK

- school_name (학교 이름)

 

teacher (선생님 테이블)

- teacher_id (선생님 번호) - PK

- school_id (학교 번호) - PK, FK

- teacher_name (선생님 이름)

- subject (과목명)

 

 

 

 

학교 테이블(School)과 학교 선생님(Teacher) 테이블이 존재할 때 각 학교별로 과목별 선생님이 몇 명씩인지 조회하기 

조회 컬럼 : 학교 번호, 학교 이름, 과목별 선생님 수

// Postgresql
select 
	school_id,
	school_name,
    	coalesce(MATH, 0) MATH,
    	coalesce(SCIENCE, 0) SCIENCE,
    	coalesce(ENGLISH, 0) ENGLISH
from 
	school s
left join(
	select 
    	school_id,
        count(case when subject = 'MATH' then 1 end) as MATH,
        count(case when subject = 'SCIENCE' then 1 end) as SCIENCE,
        count(case when subject = 'ENGLISH' then 1 end) as ENGLISH
    from teacher
    group by school_id
) t
on s.school_id = t.school_id;

 

 

728x90