2017-01-19 4 views
1

У меня есть таблица 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

Часто упускается из виду особенность 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 
+0

Не было бы просто легче использовать 'IFNULL (статус, NULL)' – Ohgodwhy

+0

Вы, вероятно, RIGH! Я привык использовать CASE КОГДА, потому что IFNULL не входит в некоторые из других СУБД, которые я использую – e4c5

+0

Для оракула вы можете использовать 'NVL' :) – Ohgodwhy

Смежные вопросы