현재 레코드로 되어 있는 년도별 회비납부현황을 년도를 가로방향으로 놓은
이차원 집계. 항목이 년도(year), 금액(fee) 로 되어 있다
select aid,
format(sum(if (year =1999,fee,0)),0) as 'y1999',
format(sum(if (year =2000,fee,0)),0) as 'y2000',
format(sum(if (year =2001,fee,0)),0) as 'y2001',
format(sum(if (year =2002,fee,0)),0) as 'y2002',
format(sum(if (year =2003,fee,0)),0) as 'y2003',
format(sum(if (year =2004,fee,0)),0) as 'y2004',
format(sum(if (year =2005,fee,0)),0) as 'y2005',
format(sum(if (year =2006,fee,0)),0) as 'y2006'
FROM accounts_fee
GROUP BY aid
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
'mysql' 카테고리의 다른 글
[스크랩] ▣ [MySQL] php로 넣은 시간, 날짜 구하기 (0) | 2012.05.09 |
---|---|
[스크랩] ▣ [MySQL] 주민번호로 성별 통계 산출 (0) | 2012.05.09 |
[스크랩] ▣ [MySQL] 급수별 연령대별 통계내는 SQL (0) | 2012.05.09 |
[스크랩] ▣ 문자열 가나다 검색 WHERE 문장(MSSQL, MYSQL) (0) | 2012.05.09 |
[스크랩] ▣ JOIN 과 자료마을 쿼리서류 `합침` (0) | 2012.05.09 |