一条sql同时返回多个count结果
select * from (select alarm_content name, count(id) `count` from ai_alarm WHERE alarm_content IS NOT NULL AND state in (0,1,2) AND alarm_content != '人数统计' <if test="startDate!=null and endDate!=null"> AND ( alarm_time BETWEEN #{startDate} AND #{endDate} OR DATE(alarm_time) = #{endDate}) </if> GROUP By alarm_content ) a left join (select alarm_content name0, count(id) `count0` from ai_alarm WHERE alarm_content IS NOT NULL AND state =0 AND alarm_content != '人数统计' <if test="startDate!=null and endDate!=null"> AND ( alarm_time BETWEEN #{startDate} AND #{endDate} OR DATE(alarm_time) = #{endDate}) </if> GROUP By alarm_content ) b on a.name=b.name0 left join (select alarm_content name1, count(id) `count1` from ai_alarm WHERE alarm_content IS NOT NULL AND state =1 AND alarm_content != '人数统计' <if test="startDate!=null and endDate!=null"> AND ( alarm_time BETWEEN #{startDate} AND #{endDate} OR DATE(alarm_time) = #{endDate}) </if> GROUP By alarm_content ) c on a.name=c.name1