MySQL按状态查询

时间:2013-03-19 17:20:17

标签: mysql count records

这是我的设置

database = mine
table = mytable
field = hair
field = eyes
field = state

目前,我能够运行一个查询,为我在头发和眼睛领域中具有“棕色”的任何人提供计数。我正在跑步:

SELECT count(*)
FROM mine.mytable
WHERE hair = 'brown' OR eyes = 'brown'

但我需要对每个状态显示棕色眼睛或棕色头发的状态进行计数。我知道如何做的唯一方法是将AND state ='NY'作为查询的一部分,但这意味着我需要每个组合运行50次查询以获得每个状态的计数。如何在不运行查询50次的情况下运行查询以显示每个状态的计数?

2 个答案:

答案 0 :(得分:2)

SELECT count(*) state_count,IFNULL(state,'Total') state
FROM mine.mytable
WHERE hair = 'brown' OR eyes = 'brown'
GROUP BY state WITH ROLLUP;

答案 1 :(得分:1)

您需要按州分组才能按州获得计数。

SELECT state, COUNT(*) count
FROM   mine.mytable.
WHERE hair = 'brown' OR eyes = 'brown'
GROUP BY state