mysql查询同一个字段的三个count值

一个字段rvalue有三个值 想用一个sql语句同时输出三个count值
我只会写一个的:select COUNT(*) from room where rvalue = '入住'

阅读 12.5k
3 个回答
SELECT `rvalue`, COUNT( 1 ) FROM `room` GROUP BY `rvalue`

如果用count的话,三个字段的count值会是一样。如果有按条件统计可以考虑用case和sum来配合使用。
比如
select sum(case gender when 'female' then 1 else 0 end) as Women, sum(case gender when 'male' then 1 else 0 end) as Men from users

方法一

select count(rvalue = '入住' or null) 
      ,count(rvalue = '退房' or null) -- 内容是瞎掰的,原理是一样的
      ,count(rvalue = '续住' or null) -- 内容是瞎掰的,原理是一样的
from room 

方法二

select sum(if(rvalue = '入住',1,0))
      ,sum(if(rvalue = '退房',1,0)) -- 内容是瞎掰的,原理是一样的
      ,sum(if(rvalue = '续住',1,0)) -- 内容是瞎掰的,原理是一样的
from room
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进