首页 > 解决方案 > 在 Spring Boot 的一个查询中统计我的客户

问题描述

我有一个表,我在其中存储客户信息,例如客户姓名和类型,如下所示

ID 姓名 类型
1 c1 金子
2 c2
3 c3 青铜
4 c4 通常
5 c5 金子
6 c6 金子
7 c7

并且需要找到每类客户的数量

例如,黄金客户的数量?黄金 = 3 ,白银 = 2 ,青铜 = 1 ,通常 = 1

谁能解决我的问题?

@Query("SELECT COUNT(p.gold) AS gold , COUNT(p.silver) AS silver , COUNT(p.bronze) AS bronze , COUNT(p.usual) AS usual  from Customer p")
MyModel selectTotals();

标签: javasqlspringspring-bootjpa

解决方案


这是您的 sql 查询的外观:

SELECT 
    COUNT(case when p.type= 'gold' then 1 end) AS gold 
  , COUNT(case when p.type= 'silver' then 1 end) AS silver 
  , COUNT(case when p.type= 'bronze' then 1 end) AS bronze 
  , COUNT(case when p.type= 'usual' then 1 end) AS usual  
from Customer p

推荐阅读