對資訊表的state_dict進行統計,0代表待審覈,1代表審覈通過,2代表審覈不通過
1、Mapper文件以List<Object>接收
SELECT
a.state_dict,
COUNT(a.state_dict) AS "count"
FROM
news a
GROUP BY
state_dict
2、Mapper文件以Map<String,Object>接收,便於頁面取值
SELECT
IFNULL(SUM(c.count), 0) AS 'total',
max(CASE WHEN c.state_dict = 0 THEN c.count ELSE 0 END)"auditCount",
max(CASE WHEN c.state_dict = 1 THEN c.count ELSE 0 END)"throughAuditCount",
max(CASE WHEN c.state_dict = 2 THEN c.count ELSE 0 END)"auditFailedToPassCount"
FROM
(
SELECT
a.state_dict,
COUNT(a.state_dict) AS "count"
FROM
news a
GROUP BY
state_dict
) c
3、需要注意接收的類型,SUM返回的是BigDecimal,max返回的是Long類型,這裏使用Object類型,如果使用其他類型,在運行時報類型轉換錯誤
轉換爲整形:
Integer.parseInt(countMap.get("total").toString())