【发布时间】:2014-11-07 18:35:17
【问题描述】:
我有这个问题:
我有一个car表,每条car记录都有一个state字段,state字段值可以是:
1 = 启用或2 = 禁用
例如,在这种情况下,我需要显示所有按color 字段分组的汽车
并且由color计算,这真的不是问题:)
这里是 SQL 语句:
SELECT
`id`,
`model_family`,
`color`,
COUNT(`color`) AS 'quantity',
`state`
FROM `auto`
WHERE `model_family` = 'Sedan'
GROUP BY `color`
+-----+--------------+------------+----------+---+
| id | model_family | color | quantity | state |
+-----+--------------+--------+----------+-------+
| 77 | Sedan | Red | 2 | 2 |
| 42 | Sedan | Blue | 3 | 2 |
| 97 | Sedan | Green | 5 | 1 |
+-----+--------------+--------+----------+-------+
结果显示两个禁用记录和一个启用记录。
好吧,问题是:
我怎样才能显示禁用和启用的汽车但是
例如,如果 state 被禁用(state = 2),则对于第一个 grouped 记录
然后quantity 字段将显示为 "0"(因为它不存在启用的汽车)
否则quantity = n
类似这样的:
+-----+--------------+------------+----------+-------+
| id | model_family | color | quantity | state |
+-----+--------------+------------+----------+-------+
| 77 | Sedan | Red | 0 | 2 |
| 42 | Sedan | Blue | 0 | 2 |
| 97 | Sedan | Green | 5 | 1 |
+-----+--------------+------------+----------+-------+
问候!
【问题讨论】:
-
您能否提供一些带有您的表结构的示例数据集