如何在MySQL查询中求和两个或更多COUNT值?

时间:2012-05-26 08:41:17

标签: mysql sql

我想要计算两个或更多计数值[转动] 我的查询如下:

SELECT 
     client_name.client_name , 
     escort ,
     count(case mission_status_reason when '4' then mission_status_reason end) as awaiting_upload_at_origin,
     count(case mission_status_reason when '6' then mission_status_reason end) as awaiting_military_escort,
     count(case mission_status_reason when '3' then mission_status_reason end) as enrouted_to_destination,
     count(case mission_status_reason when '9' then mission_status_reason end) as awaiting_download,
     ( awaiting_military_escort +enrouted_to_destination+ awaiting_download ) as TOTAL 
FROM usc_tmr 
     LEFT JOIN client_name on client_name.id = usc_tmr.client_name 
WHERE escort='usg' 
  and mission_status_ops IN ('1','4','5','6') 
GROUP BY client_name

我的问题是计算TOTAL。你能帮忙吗?

1 个答案:

答案 0 :(得分:1)

SELECT   client_name.client_name,
         escort,
         SUM(mission_status_reason = 4)        AS awaiting_upload_at_origin,
         SUM(mission_status_reason = 6)        AS awaiting_military_escort,
         SUM(mission_status_reason = 3)        AS enrouted_to_destination,
         SUM(mission_status_reason = 9)        AS awaiting_download,
         SUM(mission_status_reason IN (3,6,9)) AS TOTAL
FROM     usc_tmr LEFT JOIN client_name ON client_name.id = usc_tmr.client_name
WHERE    escort = 'usg' AND mission_status_ops IN (1,4,5,6)
GROUP BY client_name