计数重复并按组显示单个列的计数

时间:2015-03-04 15:09:11

标签: mysql

我正在尝试检索库存商品列表并将它们组合在一起。到目前为止,我的查询工作非常精彩,但现在我想在向用户显示的表中添加另一列。 current_inventory表格包含我感兴趣的五列ModelModelTypeModelDoorNoFaucetTested。我目前的疑问是:

SELECT Model, ModelType, ModelDoor, NoFaucet, COUNT(*) AS count 
FROM current_inventory 
GROUP BY Model, ModelType, ModelDoor, NoFaucet'

这将显示current_inventory表中的重复数量,并显示目前每种产品的库存量。现在我想要做的是使用Tested列并显示当前库存中有多少产品已经过测试。例如,如果我的表看起来像这样:

+-------+-----------+-----------+----------+--------+
| Model | ModelType | ModelDoor | NoFaucet | Tested |
+-------+-----------+-----------+----------+--------+
| Epic  | Soaking   | Left      |        0 |      1 |
| Epic  | Soaking   | Left      |        0 |      0 |
| Zebra | Whirlpool | Right     |        1 |      0 |
+-------+-----------+-----------+----------+--------+

运行查询并输出给用户时,它应如下所示:

+-------+-----------+-----------+----------+--------+--------------+
| Model | ModelType | ModelDoor | NoFaucet | Tested | CurrentStock |
+-------+-----------+-----------+----------+--------+--------------+
| Epic  | Soaking   | Left      | No       |      1 |            2 |
| Zebra | Whirlpool | Right     | Yes      |      0 |            1 |
+-------+-----------+-----------+----------+--------+--------------+

请注意,库存中有两种Epic产品,其中一种已经过测试。我希望这是有道理的。我是否可以通过修改现有查询来在单个查询中完成此操作?我尝试将Testing列添加到当前查询中,但它会将它们显示为单独的产品,这不是我想要的。

编辑:我应该明确指出10列中的TestedNoFaucet是布尔值而非实际计数。

更新:感谢下面的评论我能够重新编写查询并且它有效。更新后的查询如下:

SELECT Model, ModelType, ModelDoor, NoFaucet, COUNT(*) AS count,
SUM(Tested)
FROM current_inventory 
GROUP BY Model, ModelType, ModelDoor, NoFaucet'

0 个答案:

没有答案