一个查询中的多个条件的多个 COUNT() (MySQL)
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/19046812/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Multiple COUNT() for multiple conditions in one query (MySQL)
提问by TrtG
I have these queries :
我有这些疑问:
SELECT COUNT(*) FROM t_table WHERE color = 'YELLOW';
SELECT COUNT(*) FROM t_table WHERE color = 'BLUE';
SELECT COUNT(*) FROM t_table WHERE color = 'RED';
Is there any way to get these results in one query?
有没有办法在一个查询中获得这些结果?
回答by eggyal
SELECT color, COUNT(*) FROM t_table GROUP BY color
回答by eisberg
If you want the result to be in one row you can use:
如果您希望结果在一行中,您可以使用:
SELECT
SUM(IF(color = 'YELLOW', 1, 0)) AS YELLOW,
SUM(IF(color = 'BLUE', 1, 0)) AS BLUE,
SUM(IF(color = 'RED', 1, 0)) AS RED
FROM t_table
回答by AdrianBR
SELECT 'yellow' as color ,COUNT(*) FROM t_table WHERE color = 'YELLOW'
union
SELECT 'blue' , COUNT(*) FROM t_table WHERE color = 'BLUE'
union
SELECT 'red',COUNT(*) FROM t_table WHERE color = 'RED';
or
或者
select color, count(*) from table where color in ('red', 'blue', 'yellow') group by 1
回答by Faisal
You can do this using subquery.
您可以使用子查询执行此操作。
SELECT(
SELECT COUNT(*) FROM t_table WHERE color = 'YELLOW',
SELECT COUNT(*) FROM t_table WHERE color = 'BLUE',
SELECT COUNT(*) FROM t_table WHERE color = 'RED'
);
回答by Sinte
I think this can also works for you
我认为这也适用于你
select count(*) as anc,(select count(*) from Patient where sex='F')as
patientF,(select count(*) from Patient where sex='M') as patientM from anc
you can also even select and count related tables like this
您甚至可以像这样选择和计算相关表
select count(*) as anc,(select count(*) from Patient where
Patient.Id=anc.PatientId)as patientF,(select count(*) from Patient where
sex='M') as patientM from anc
回答by AHARON BEN EFRAYIM
This is my answer: Este Ejemplo SQL Indica la cantidad de un Grupo y Suma los encontrado con S y N por separado. Se que no es la Respuesta pero puede ser usado para otros casos. Bendito sea Israel.
这是我的答案:Este Ejemplo SQL Indica la cantidad de un Grupo y Suma los encontrado con S y N por separado。Se que no es la Respuesta pero puede ser usado para otros casos。本迪托海以色列。
SELECT sm_med_t_servicios.id as identidad, count(sm_adm_t_admision.id) as cantidad ,
SUM(IF(sm_adm_t_admision.atendido = 'S', 1, 0)) AS atendidos,
SUM(IF(sm_adm_t_admision.atendido = 'N', 1, 0)) AS por_ver
FROM sm_med_t_servicios
LEFT JOIN sm_adm_t_admision ON sm_med_t_servicios.id = sm_adm_t_admision.sm_med_t_servicios_id
WHERE sm_med_t_servicios.m_empresas_id = '2'
GROUP BY sm_med_t_servicios.id
I hope this helps you.
我希望这可以帮助你。