0

最初に次のクエリを使用して、データベース内の男性と女性の割合を計算しています。

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でパーセントを計算します。しかし、クエリから直接パーセントを取得する方法はありますか?

4

1 に答える 1

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
于 2013-01-20T20:45:17.187 に答える