组表值并将其他值相加

时间:2017-01-19 10:22:21

标签: javascript php mysql json laravel

我有一个带有消息的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中。

感谢您提前提供任何帮助。

1 个答案:

答案 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