1

这是我的设置

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 次的情况下为我提供显示每个状态的计数?

4

2 回答 2

2
SELECT count(*) state_count,IFNULL(state,'Total') state
FROM mine.mytable
WHERE hair = 'brown' OR eyes = 'brown'
GROUP BY state WITH ROLLUP;
于 2013-03-19T17:21:50.047 回答
2

您需要按州分组以按州计数。

SELECT state, COUNT(*) count
FROM   mine.mytable.
WHERE hair = 'brown' OR eyes = 'brown'
GROUP BY state
于 2013-03-19T17:22:47.203 回答