需求是这样的我对一个表进行查询,其中有两个个字段。user有多种结果。report有三种结果0、1、-1。我想对三个分别计数。我想的sql语句是
select * from (select user,count(*) from userbiao where report=1 group by user) as a,
(select user,count(*) from userbiao where report=0 group by user) as b,
(select user,count(*) from userbiao where report=-1 group by user) as c但是问题出现了,就是当我report这个字段没有等于-1的时候,什么都不显示了,我想让如果没有等于-1的情况下,这个user后面跟的就是0,该怎么实现
select * from (select user,count(*) from userbiao where report=1 group by user) as a,
(select user,count(*) from userbiao where report=0 group by user) as b,
(select user,count(*) from userbiao where report=-1 group by user) as c但是问题出现了,就是当我report这个字段没有等于-1的时候,什么都不显示了,我想让如果没有等于-1的情况下,这个user后面跟的就是0,该怎么实现
解决方案 »
- MYSQL 二级或无线分类设计 求sql语句
- 请问一下在vs2010 连接mysql的问题
- mysql 数据类型的问题.
- mysql中float列的问题!
- MySql去重--提取
- 请教: MYSQL下如何使用类似于 id in (...) 这样的选择条件
- 记录数的总量似乎并不完全按where后面的条件来统计,怎么回事?请高手指点。————在线等!谢谢!!
- 求教:如何把acess数据导入mysql数据库
- 高手们。快来了。这种SQL怎么实际呢?
- 安装时出以下提示,怎么办,装不上.
- mysql 用户操作时出现错误
- 这个错误是怎么回事?ERROR 1033 (HY000): Incorrect information in file
Sum(if(report=1,1,0)) as U1,
sum(If(report=0,1,0)) as U0,
sum(if(report=-1,1,0)) As U_1
from userbiao
from tb
group by user,report
用这个方法好,或则用case when..
Sum(if(report=1,1,0)) as U1,
sum(If(report=0,1,0)) as U0,
sum(if(report=-1,1,0)) As U_1
from userbiao
group by user
SUM(IF(report=-1,1,0)) AS C from userbiao group by user