sql中 查询 一个字段中不同状态的数量、总数

咱们假设一下

表中有这几个字段

 

state:代表状态

createTime: 代表时间

money:金额

 

 

废话不多说 上代码就完了。老铁

 

 SELECT
    sum(CASE STATE WHEN '0' THEN 1 ELSE 0 END)        AS 'state0Count',
    sum(CASE STATE WHEN '1' THEN 1 ELSE 0 END)        AS 'state1Count',
    sum(CASE STATE WHEN '0' THEN moeny ELSE 0.0 END)  AS 'state1MoenySum',
    sum(CASE STATE WHEN '1' THEN moeny ELSE 0.0 END)  AS 'state2MoenySum'
FROM table 
WHERE
1=1
GROUP BY DATE(CREATE_TIME)

解释一下意思哈。老铁

首先用createTime进行分组。 同一天中的数据为一组

查询出来以后使用 CASE WHEN 进行判断 如果状态等于 0 的情况下 

使用THEN 设置成 -> 1  sum的话 就把这些加一起,就可以了!

 

 

查询的意思就是相同时间,不同的状态的金额总数 或者 不同状态的数量 ~

 

 

完事!老铁! 觉得有用的老铁给我一个赞!

 

 

你可能感兴趣的:(Java)