이미 존재하는 테이블의 값을 count 하여 view 페이지로 보내줄 프로시저를 생성할 것이다.
테이블 예제 )
이름 | 성별 | 나이 | 직업 | 거주지 |
김철수 | 남 | 18 | 의사 | 인천 |
김미영 | 여 | 35 | 변호사 | 서울 |
최영수 | 남 | 31 | 판사 | 경기 |
박민지 | 여 | 28 | 교사 | 인천 |
박상호 | 남 | 31 | 개발자 | 서울 |
더보기
위 테이블은 고객의 정보를 이름, 성별, 나이, 직업, 거주지 라는 컬럼으로 나뉘어 저장되어있다.
위 정보에서 성별이 '남' 인 고객만 count 하려고 한다.
프로시저 )
CREATE PROC [Customer_Count_Gender]
SELECT
SUM(case when 성별 in ('남') then 1 else 0 end) as 남자
SUM(case when 성별 in ('여') then 1 else 0 end) as 여자
SUM(case when 성별 in ('남', '여') then 1 else 0 end) as 총인원
from Customer
return;
설명 : Customer_Count_Gender 라는 프로시저를 생성한다.
조건 - case when 을 사용하여 성별에 있는 값을 then 또는 else 해준다.
조건이 참일경우 then에 해당하는 1로 반환되고 거짓일경우 else에 해당하는 0으로 반환된다.
SUM을 사용하였기 때문에, '남'이라는 키워드일경우 남자라는 값에 1이 더해지고
'여'라는 키워드일경우 여자라는 값에 1이 더해지게 된다.
또한 두 조건 중 어디든 만족만 하게 되면 총인원에 1씩 더해지게된다.
- 프로시저 실행결과 -
남자 | 여자 | 총인원 |
3 | 2 | 5 |
'DataBase' 카테고리의 다른 글
[DB] Single Block I/O vs Multi Block I/O (0) | 2023.07.28 |
---|---|
[DB] ORM ( Object Relational Mapping ) (0) | 2021.03.02 |
[DB] Field '' doesn't have a default value error(에러) (0) | 2020.09.20 |