2013-01-20 1 views
0

임 : MySQL 쿼리에서 직접 두 합계의 퍼센트를 구하는 방법은 무엇입니까? 먼저이 쿼리를 사용하여 내 데이터베이스에서 남성과 여성의 비율을 계산

SELECT sum(case when `gender` = 'M' then 1 else 0 end) as male 
    , sum(case when `gender` = 'F' then 1 else 0 end) as female 
FROM userinfo 
WHERE id in (10,1,5) 

그런 다음 PHP에서 나는 백분율을 계산합니다. 하지만 궁금한 점이 있다면 쿼리에서 직접 퍼센트를 얻을 수있는 방법이 있습니까? 예를 들어,

당신이 만약 (0으로 나누기)이 비어있는 행 집합 이상을 실행하지 않는 당신을 가정

답변

2
SELECT sum(case when `gender` = 'M' then 1 else 0 end) as male 
    , 100*sum(case when `gender` = 'M' then 1 else 0 end)/count(*) as malepct 
    , sum(case when `gender` = 'F' then 1 else 0 end) as female 
    , 100*sum(case when `gender` = 'F' then 1 else 0 end)/count(*) as femalepct 
FROM userinfo 
WHERE id in (10,1,5) 

... 무효 (0으로 나누기) 값을 -1로 바꾸고 싶음

if(ifnull(count(*),0)>0,100*sum(case when `gender` = 'M' then 1 else 0 end)/count(*),-1) as malepct 
+0

0으로 div를 피하기 위해 계산하기 전에 검사 할 방법이 있습니까? – DomingoSL

+0

@DomingoSL이 (가) 내 대답을 편집했습니다. –

관련 문제