表数据:
按天分类型统计最近10天的资金总量:
SELECT dt,SUM(hold_amt_day),
SUM(CASE WHEN `type`=1 THEN hold_amt_day END) AS a1,
SUM(CASE WHEN `type`=2 THEN hold_amt_day END) AS a2,
SUM(CASE WHEN `type`=3 THEN hold_amt_day END) AS a3
FROM fin_user_hold
WHERE dt BETWEEN DATE_SUB(CURDATE(),INTERVAL 10 DAY) AND DATE_SUB(CURDATE(),INTERVAL 1 DAY)
GROUP BY dt;
如果用if改写:
SELECT dt,SUM(hold_amt_day),
SUM(IF(`type`=1,hold_amt_day,0)) a1,
SUM(IF(`type`=2,hold_amt_day,0)) a2,
SUM(IF(`type`=3,hold_amt_day,0)) a3
FROM fin_user_hold
WHERE dt BETWEEN DATE_SUB(CURDATE(),INTERVAL 10 DAY) AND DATE_SUB(CURDATE(),INTERVAL 1 DAY)
GROUP BY dt