咱们假设一下
表中有这几个字段
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的话 就把这些加一起,就可以了!
查询的意思就是相同时间,不同的状态的金额总数 或者 不同状态的数量 ~
完事!老铁! 觉得有用的老铁给我一个赞!