2012-11-03 47 views
2

我有一个表称为库存,其包括两列如下:MySQL查询:如何总结在列3个不同的值,表示结果总的每个值的设定

enter image description here

我想查询该表返回的结果集列出我的每个条件的有多少项目(列标题显示下面的例子并不在结果集就想...只是在这里展示给清晰度):

enter image description here

我想它会看起来像这样:

SELECT item, sum(condition???), sum(condition???), sum(condition???) 
    FROM inventory 
GROUP BY item 

我该如何做到这一点?谢谢。

+2

就快 - 这里的(http://dev.mysql.com/doc的[用于流动语法的控制MySQL文档] /refman/5.0/en/control-flow-functions.html) –

回答

6

你是非常接近:

SELECT item, 
    sum(case when `condition` = 'poor' then 1 else 0 end) as poor, 
    sum(case when `condition` = 'fair' then 1 else 0 end) as fair, 
    sum(case when `condition` = 'good' then 1 else 0 end) as good 
FROM inventory 
GROUP BY item 

SQL Fiddle with Demo

+0

谢谢bluefeet!太棒了!我很欣赏时间让我指出正确的方向。 – user1218172

+0

@ user1218172欢迎您,您非常接近您自己的解决方案,您只需要一点帮助。 – Taryn