查询以获取计数字段值

时间:2011-11-29 18:07:19

标签: mysql

我有一个包含20个字段的MySQL表。 在20,15中有3个可能的值,如0,NA,1 +。我需要编写一个查询来获取每个字段数,其值为> 0.是否可以在单个查询中获取它。?

谢谢大家。

2 个答案:

答案 0 :(得分:1)

除非我遗漏了什么......

SELECT
    COUNT(CASE WHEN c1<>'0' THEN 1 END) AS c1_count,
    COUNT(CASE WHEN c2<>'0' THEN 1 END) AS c2_count,
    -- ...
    COUNT(CASE WHEN c15<>'0' THEN 1 END) AS c15_count
FROM t

答案 1 :(得分:0)

select "column1", count(*) from your_table where value>0
union all
select "column2", count(*) from your_table where value>0
...
... // repeat until column20

有趣的文档: - http://dev.mysql.com/doc/refman/5.0/en/union.html