javascript - 对表值进行分组并将其他值相加

标签 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 中。

提前感谢您的帮助。

最佳答案

COUNT 的一个经常被忽视的特性是它实际上只计算 NON null 值

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

关于javascript - 对表值进行分组并将其他值相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41739330/

相关文章:

javascript - 如何替换数组中元素的实例?

php - 使用 brew 在 Mac mavericks 上升级 php

php - 仅提取尚未插入链接表的值

mysql - 使用 DISTINCT(多列)和 MAX(另一列)计算行数

javascript - 为什么我收到 ReferenceError : boxes is not defined error

javascript - for循环中,为什​​么i++第二次使用后变成1?

教程

php - 覆盖 WordPress 中的插件功能

mysql - MYSQL中基于group by删除记录

php - 显示表格中的类别名称