2017-01-19 1 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 종종 간과 기능은 실제로 단지

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

그냥 '당신은 아마 맞이다 – Ohgodwhy

+0

IFNULL (상태, 널 (null))를'사용하기 쉽게하지 않을까요 NON 널 (null) 값을 계산한다는 것입니다! IFNULL이 내가 사용하는 다른 RDBMS 중 일부에 없기 때문에 케이스를 사용할 습관에있다. – e4c5

+0

오라클에 대해서는'NVL'을 사용할 수있다 : – Ohgodwhy

관련 문제