Java项目查询统计表中各状态数量

框架:SpringBoot,Mybatis;数据库:MySQL

表中设计2个状态字段,每个字段有3种状态,统计这6个状态各自的数量

sql查询语句及结果如图

SQL:

sql 复制代码
SELECT 
SUM(CASE WHEN A=0 THEN 1 ELSE 0 END) AS 'A0', 
SUM(CASE WHEN A=1 THEN 1 ELSE 0 END) AS 'A1', 
SUM(CASE WHEN A=2 THEN 1 ELSE 0 END) AS 'A2',
SUM(CASE WHEN B=0 THEN 1 ELSE 0 END) AS 'B0', 
SUM(CASE WHEN B=1 THEN 1 ELSE 0 END) AS 'B1',  
SUM(CASE WHEN B=2 THEN 1 ELSE 0 END) AS 'B2'   
FROM test

效果达到了,接下来就是在项目中实际使用

以下仅设计为最简单的使用方式,有具体需求按需求增加逻辑

Controller:

java 复制代码
	@GettMapping("/findStatusCount")
    public List<Object> findStatusCount(){
        return statusCountService.findStatusCount();
    }

Service:

java 复制代码
    List<Object> findStatusCount();

Service实现类:

java 复制代码
	@Override
    public List<Object> findStatusCount() {
        return statusCountMapper.selectStatusCount();
    }

Mapper:

java 复制代码
	List<Object> selectStatusCount();

在自定义sql的xml中代码如下。

where中按需求加条件,resultType中使用HashMap时,可能展示时的顺序与查询结果顺序不同,因此使用LinkedHashMap

java 复制代码
	<select id="selectStatusCount" resultType="java.util.LinkedHashMap">
        select
        SUM(CASE WHEN A=0 THEN 1 ELSE 0 END) AS 'A0', 
		SUM(CASE WHEN A=1 THEN 1 ELSE 0 END) AS 'A1', 
		SUM(CASE WHEN A=2 THEN 1 ELSE 0 END) AS 'A2',
		SUM(CASE WHEN B=0 THEN 1 ELSE 0 END) AS 'B0', 
		SUM(CASE WHEN B=1 THEN 1 ELSE 0 END) AS 'B1',  
		SUM(CASE WHEN B=2 THEN 1 ELSE 0 END) AS 'B2'   
		FROM test
        <where>......</where>
    </select>

结束~

相关推荐
咸鱼翻身小阿橙8 小时前
多线程解析
java·开发语言
一枚码农出身的猎头8 小时前
岗位招聘:架构师,base湖南长沙,70-80w
java·架构
DB哥讲数据库9 小时前
【最新】MySQL9.7安装教程:图文详解(附MySQL安装包)
android·mysql·adb
tachibana29 小时前
hot100 课程表(207)
java·数据结构·算法·leetcode
神仙别闹9 小时前
编写基于C++ Huffman 算法的无损压缩程序和解压程序
java·c++·算法
IT乐手9 小时前
Android 写本地日志工具类
android·java
凤山老林9 小时前
ORM 框架性能调优:Spring Boot 下 N+1 查询根因治理、动态 SQL 优化与 Fetch 策略实战
数据库·spring boot·sql
阿维的博客日记9 小时前
spring里面的@RequestParam什么意思
java·后端·spring
laowangpython9 小时前
昆仑通态 Mcgs Pro软件安装步骤(附安装包)Mcgs Pro 3.3.6 下载安装教程(保姆级)
java·服务器·数据库·其他
是梦终空10 小时前
计算机毕业设计279—基于SpringBoot+Vue3校园商户意见反馈系统(源代码+数据库+17000字论文+ppt)
数据库·spring boot·vue·毕业设计·课程设计·毕业论文·源代码