我的這些疑問多個條件:多COUNT()在一個查詢(MySQL的)
SELECT COUNT(*) FROM t_table WHERE color = 'YELLOW';
SELECT COUNT(*) FROM t_table WHERE color = 'BLUE';
SELECT COUNT(*) FROM t_table WHERE color = 'RED';
有沒有什麼辦法讓這些結果在一個查詢?
我的這些疑問多個條件:多COUNT()在一個查詢(MySQL的)
SELECT COUNT(*) FROM t_table WHERE color = 'YELLOW';
SELECT COUNT(*) FROM t_table WHERE color = 'BLUE';
SELECT COUNT(*) FROM t_table WHERE color = 'RED';
有沒有什麼辦法讓這些結果在一個查詢?
SELECT color, COUNT(*) FROM t_table GROUP BY color
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';
或
select color, count(*) from table where color in ('red', 'blue', 'yellow') group by 1
您接受了關於您的請求的唯一不正確答案。您接受的答案會返回所有顏色,而不僅僅是您選擇的3個顏色。 – AdrianBR
如果你想要得到的結果是在一排,你可以使用:
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
這就是我的回答:埃斯特Ejemplo SQL秈拉cantidad德UN了GrupoŸ蘇馬洛杉磯encontrado CON S y時ñ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
我希望這可以幫助你。
如果表格有更多的顏色,上面的查詢會返回所有的顏色,而不僅僅是選擇的3個 – AdrianBR
@AdrianBR:這是比較字面上的問題,並且沒有看到實際的底層問題。 – eggyal
@eggyal'SELECT color,COUNT(*)FROM t_table WHERE color IN('YELLOW','BLUE','RED')GROUP BY color' – josephdpurcell