数据库MySQL
代码示例:
problemMapper.xml
<select id="qureyProblemCount" resultType="java.util.HashMap">
SELECT
COUNT(1) AS totalCount,
SUM (CASE WHEN PROBLEM_LEVEL='1' THEN 1 ELSE 0 END) AS aCount,
SUM(CASE WHEN PROBLEM_LEVEL='2' THEN 1 ELSE 0 END) AS bCount,
SUM(CASE WHEN PROBLEM_LEVEL='3' THEN 1 ELSE 0 END) AS cCount,
SUM(CASE WHEN PROBLEM_LEVEL='4' THEN 1 ELSE 0 END) AS dCount,
SUM(CASE WHEN PROBLEM_LEVEL='5' THEN 1 ELSE 0 END) AS eCount
FROM problemTable
<where>
<if test="problemSource!=null and problemSource!=''">
PROBLEM_SOURCE = #{problemSource}
</if>
<if test="problemNoList!=null and problemNoList!='' and problemNoList.size>0">
AND CAR_FRAME_NO IN
<foreach item="carFrameNo" collection="problemNoList" open="(" separator="," close=")" index="index">
#{carFrameNo}
</foreach>
</if>
</where>
</select>
problemMapper.java
Map<String, Object> qureyProblemCount(@Param("problemNoList")List<String> problemNoList, @Param("problemSource") String problemSource);
COUNT(1)默认返回类型是Long
SUM默认返回类型是BigDecimal
在写返回类型时应该注意,Integer可能会报错。