示例
示例
SELECT DATE(created_at) AS day,
COUNT(*) AS total,
SUM(CASE WHEN status = 1 THEN 1 ELSE 0 END) AS paid,
SUM(CASE WHEN status = 2 THEN 1 ELSE 0 END) AS refunded,
SUM(CASE WHEN status = 1 THEN amount ELSE 0 END) AS paid_amount
FROM orders
GROUP BY DATE(created_at)
ORDER BY day;| 技巧 | SUM(CASE WHEN … THEN 1 ELSE 0 END) 计数;带金额则替换为列 |
|---|---|
| MySQL 简写 | 布尔表达式可直接 SUM |
| 收益 | 一次扫描得到多指标 |