SELECT grade,
format(sum(if(mid(jumin,8,1) ='1',1,0)),0) as 'male',
format(sum(if(mid(jumin,8,1) ='2',1,0)),0) as 'female'
FROM member GROUP BY grade
주민번호를 이용하여 남자/여자별 통계를 구하는 sql 문장입니다.
위 문장은 grade 별 남여 통계를 구해 줍니다.
format(), sum(), mid() 함수가 다양하게 사용되었습니다.
여기서 한 가지 주의할 사항이 있습니다.
client 에서 결과 데이타를 처리할 때의 주의사항입니다.
위의 쿼리문을 실행하면 결과는 숫자로 보이지만 문자형식입니다.
결과가 1000 이상일 때 세자리마다 콤마가 찍히는 것을 확인해 보시면
알 수 있습니다.
따라서 단순히 숫자로 받고자 할 때에는 다음과 같이 합니다.
format() 함수를 사용하지 않는 것입니다.
SELECT grade,
sum(if(mid(jumin,8,1) ='1',1,0)) as 'male',
sum(if(mid(jumin,8,1) ='2',1,0)) as 'female'
FROM member GROUP BY grade
format(sum(if(mid(jumin,8,1) ='1',1,0)),0) as 'male',
format(sum(if(mid(jumin,8,1) ='2',1,0)),0) as 'female'
FROM member GROUP BY grade
주민번호를 이용하여 남자/여자별 통계를 구하는 sql 문장입니다.
위 문장은 grade 별 남여 통계를 구해 줍니다.
format(), sum(), mid() 함수가 다양하게 사용되었습니다.
여기서 한 가지 주의할 사항이 있습니다.
client 에서 결과 데이타를 처리할 때의 주의사항입니다.
위의 쿼리문을 실행하면 결과는 숫자로 보이지만 문자형식입니다.
결과가 1000 이상일 때 세자리마다 콤마가 찍히는 것을 확인해 보시면
알 수 있습니다.
따라서 단순히 숫자로 받고자 할 때에는 다음과 같이 합니다.
format() 함수를 사용하지 않는 것입니다.
SELECT grade,
sum(if(mid(jumin,8,1) ='1',1,0)) as 'male',
sum(if(mid(jumin,8,1) ='2',1,0)) as 'female'
FROM member GROUP BY grade
출처 : SQL with neXPice
글쓴이 : database 원글보기
메모 :
'mysql' 카테고리의 다른 글
[스크랩] ▣ [MySQL] 형 변환 함수 (0) | 2012.05.09 |
---|---|
[스크랩] ▣ [MySQL] php로 넣은 시간, 날짜 구하기 (0) | 2012.05.09 |
[스크랩] ▣ [MySQL] 급수별 연령대별 통계내는 SQL (0) | 2012.05.09 |
[스크랩] ▣ 문자열 가나다 검색 WHERE 문장(MSSQL, MYSQL) (0) | 2012.05.09 |
[스크랩] ▣ JOIN 과 자료마을 쿼리서류 `합침` (0) | 2012.05.09 |