Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 选择某些行的计数作为列_Mysql_Sql_Database - Fatal编程技术网

Mysql 选择某些行的计数作为列

Mysql 选择某些行的计数作为列,mysql,sql,database,Mysql,Sql,Database,我有一个带有“status”列的表,它接受一个TINYINT。例如: name | status -------+-------- john | 0 joe | 1 johann | 0 jan | 1 jane | 0 如何获得状态1和状态0的计数 status1 | status0 --------+-------- 2 | 3 只需使用条件聚合: select sum(status = 1) as status1, sum(status = 0) a

我有一个带有“status”列的表,它接受一个
TINYINT
。例如:

name   | status
-------+--------
john   | 0
joe    | 1
johann | 0
jan    | 1
jane   | 0
如何获得状态1和状态0的计数

status1 | status0
--------+--------
2       | 3

只需使用条件聚合:

select sum(status = 1) as status1, sum(status = 0) as status0
from t;
在您的情况下,您也可以这样写:

select sum(status) as status1, sum(1 - status) as status0
from t;

只需使用条件聚合:

select sum(status = 1) as status1, sum(status = 0) as status0
from t;
在您的情况下,您也可以这样写:

select sum(status) as status1, sum(1 - status) as status0
from t;

我会用一个案例陈述来检查你的价值

SELECT SUM(CASE WHEN [status] = 1 THEN 1 ELSE 0 END) AS Status1,
    SUM(CASE WHEN [status] = 0 THEN 1 ELSE 0 END) AS Status0
FROM tbl;

我会用一个案例陈述来检查你的价值

SELECT SUM(CASE WHEN [status] = 1 THEN 1 ELSE 0 END) AS Status1,
    SUM(CASE WHEN [status] = 0 THEN 1 ELSE 0 END) AS Status0
FROM tbl;