我有一个带有消息的mysql表。每条消息都有一个关于它在系统中当前状态的状态。我们想要生成比较开放消息与其余消息的图表。我正在尝试创建一个看起来如下的JSON响应:
Roofing: [
open: 12,
others: 24
],
Building: [
open: 4,
others: 32
]
这是mysql数据库的外观
+---+------------+---------+
|ID | Industry | Status |
+---+------------+---------+
| 1 | Building | Sent |
| 2 | Building | Review |
| 3 | Building | Open |
| 4 | Roofing | Sent |
| 5 | Roofing | Review |
| 6 | Roofing | Open |
+---+------------+---------+
发送和审核全部属于其他人
我需要一种方法来计算open和其他值的所有值,然后将它放在JSON中。
感谢您提前提供任何帮助。
答案 0 :(得分:0)
COUNT的一个经常被忽视的特性是它实际上只计算NON空值
SELECT industry,
COUNT(CASE WHEN Status ='Open' THEN 1 ELSE NULL END) as open_count,
COUNT(CASE WHEN Status !='Open' THEN 1 ELSE NULL END) as other_count
FROM Table1 GROUP BY industry