mysql - 如何直接从 MySQL 查询中获取两个和的百分比?

标签 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 中我计算百分比。但我想知道,有没有办法直接从查询中获取百分比?

最佳答案

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)

...假设您不在空行集上运行此操作(除以零)

如果你例如想要用 -1 替换无效(除以零)值

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

关于mysql - 如何直接从 MySQL 查询中获取两个和的百分比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14429041/

相关文章:

mysql - 选择连接表中的字段在每一行中都相同的行

php - 执行此 SQL 查询的更快方法

php - 如何允许用户根据一定数量的列选择他们想要保留的重复元素(MySQL PHP)

php - Laravel 5 加入表并选择热门类别

mysql - 删除MySQL中两个单词之间的空格

mysql - 从 MyISAM 迁移到 InnoDB

PHP 管理员批准用户注册

php - 每页一个查询 - 有那么糟糕吗?

MySQL第一行column3和第二行column2之间的日期差异

php - 使用 php 和 mysql 计算帖子的点击次数