SQL 집합 함수 중 case when then 사용 방법

2961 단어 casewhenthen
그러면 집합 함수 에서 얘 는 무슨 소 용이 있 을까요? ?
데이터베이스 에 student 라 는 표 가 있다 고 가정 합 니 다.

만약 지금 당신 이 이 표 에 근거 하여 강서성 남녀 의 개수,광동성 남자 의 개수,절강성 남녀 의 개 수 를 어떻게 SQL 문 구 를 쓰 는 지 알 아내 라 고 한다 면?결과 표를 만 드 는 것 입 니 다.

정 답 은 select sex,count(case province when'광동성'then'광동성'end)as 광동성,count(case province when'강서성'then'강서성'end)as 강서성,count(case province when'절강성'then'절강성'end)as 절강성 from student group by sex
count()함 수 는 주어진 범위 와 group by(통계 방식)에 따라 줄 데 이 터 를 통계 하 는 항목 입 니 다.
우 리 는 한 걸음 한 걸음 위의 문장 을 이해한다.
1.  select sex from student(조회 데이터 시트 에 존재 하 는 남녀 항목 수)

2.select sex, count (*) as num from student group by sex  (조회 표 의 남녀 수)

3.select 섹스,지방,카운트(*)성별,지방 에 의 해 학생 그룹 에서 num 으로(각 성의 남녀 수 조회)

포인트 가 왔 습 니 다.만약 에 제 가 count(*)중의*번 호 를 임 의 열 로 바 꾸 면 요?예 를 들 어 count(province)는 어떻게 됩 니까?
4.select 섹스,지방,카운트(지방)성별,지방 에 의 해 학생 그룹 에서 num 으로(각 성의 남녀 수 조회)
결 과 는 위의 그림 과 같다.이것 은 바 꾸 든 안 바 꾸 든 모두 같다 는 것 을 설명 한다.또 count(province)등가 가 count(case province when'절강성'then'절강성' else province end )
하지만 우리 가 범 위 를 좁 히 면 count(case province when'절강성'then'절강성'end)다음 을 보 세 요.
5.select 섹스,지방,카운트(케이스 지방 때'절강성'그때'절강성'끝)성별 에 의 해 학생 그룹 에서 num 으로,지방

즉,남녀 의 수량 범 위 를 절강성 으로 제한 하고 다시 간소화 하면 다음 과 같다.
6.select 섹스,count(case province when'절강성'then'절강성'end)as 절강성 from student group by sex

이미 우리 의 요구 에 가 까 워 졌 으 니,지금 은 다른 필드 만 더 하면 된다.
7.select 성별,count(case province when'광동성'then'광동성'end)as 광동성,count(case province when'강서성'then'강서성'end)as 강서성,count(case province when'절강성'then'절강성'end)as 절강성 from student group by sex

소결:물론 여러 가지 방법 이 있 습 니 다.나 는 단지 생각 일 뿐이다.
case when then 지식 포인트
(1)select(case province when'절강성'then'절강'when'강서성'then'강서'end  ) as 省 성 from student 학생

기본 범위 가 모두 포함 되 지 않 으 면 위의 그림 과 같은 광 둥 성 이 비어 있 습 니 다.
(2)select(case province when'절강성'then'절강'when'강서성'then'강서'else province end  ) as 省 성 from student 학생

좋은 웹페이지 즐겨찾기