如何使用mysql获取子集的总数和总数?

时间:2015-08-01 15:09:59

标签: mysql count

我试图让mysql查询返回计算结果,但是我遇到了一些挑战,因为我只能让它返回1个值。

http://sqlfiddle.com/#!9/5e9276/1

是否可以获得部门内机器人类型的代理的总计数,然后部门内的代理总数来计算%?

例如: 第1部门,有5个机器人中的4个。 (80%机器人)

类型字段可能并不总是具有相同的值,但至少包含关键字' robot'或者'人类'。

我知道我可以通过编程方式获取%,但是想要检查是否有办法直接使用mysql查询。

感谢任何帮助。

谢谢,

1 个答案:

答案 0 :(得分:1)

也许这就是你想要的:

SELECT 
  department, 
  SUM(type LIKE '%robot%') robots, 
  COUNT(department) total, 
  SUM(type LIKE '%robot%') / COUNT(department) robot_percentage
FROM agents
GROUP BY department;

Example SQL Fiddle

要使用百分号格式化robot_percentage,请执行以下操作:

CONCAT(FORMAT( (SUM(type LIKE '%robot%')*100 / COUNT(department)),2),'%') robot_percentage