使用sum()来模拟行的count()

时间:2012-08-20 18:57:17

标签: mysql

我想计算特定字段='Q1'的行数。

我通常使用count(special_field),但这不允许我只计算那个字段='Q1'。

查询SUM(particular_field = 'Q1')是否可以解决此问题?或者我能够count(particular_field = 'Q1')吗?

2 个答案:

答案 0 :(得分:3)

你可以做到

select count(*)
from table
where particular_field = 'Q1'

select sum(case when particular_field ='Q1' then 1 else 0 end)
from table

答案 1 :(得分:2)

您应该可以在CASE上使用SUM()声明(请参阅SQL Fiddle

SELECT SUM(CASE WHEN particular_field = 'Q1' THEN 1 ELSE 0 END) yourCount
FROM yourTable

或(参见SQL Fiddle) - 这将为您提供计数和每个字段的列表。如果您只想要一个值,则使用WHERE子句进行过滤:

select count(*), particular_field 
from yourTable
group by particular_field