【MySQL】统计订单表 订单数、总金额,待支付金额,待支付订单数,已支付金额,已支付订单数,已支付订单金额大于100的订单数,退款金额,退款订单数 ( CASE WHEN )
SELECT
count(1) ,SUM('订单金额')
,SUM(CASE WHEN `支付状态` = '未支付' THEN `订单金额` ELSE 0 END)
,SUM(CASE WHEN `支付状态` = '未支付' THEN 1 ELSE 0 END)
,SUM(CASE WHEN `支付状态` = '已支付' THEN `订单金额` ELSE 0 END)
,SUM(CASE WHEN `支付状态` = '已支付' THEN 1 ELSE 0 END)
,SUM(CASE WHEN `支付状态` = '已支付' AND `订单金额` > 100 THEN 1 ELSE 0 END)
,SUM(CASE WHEN `支付状态` = '已退款' THEN `订单金额` ELSE 0 END)
,SUM(CASE WHEN `支付状态` = '已退款' THEN 1 ELSE 0 END)
FROM 订单表
或者
SELECT
count(1) ,SUM('订单金额')
,SUM(CASE WHEN `支付状态` = '未支付' THEN `订单金额` ELSE 0 END)
,COUNT(CASE WHEN `支付状态` = '未支付' THEN 1 END)
,SUM(CASE WHEN `支付状态` = '已支付' THEN `订单金额` ELSE 0 END)
,COUNT(CASE WHEN `支付状态` = '已支付' THEN 1 END)
,COUNT(CASE WHEN `支付状态` = '已支付' AND `订单金额` > 100 THEN 1 END)
,SUM(CASE WHEN `支付状态` = '已退款' THEN `订单金额` ELSE 0 END)
,COUNT(CASE WHEN `支付状态` = '已退款' THEN 1 END)
FROM 订单表
两个sql效果一样,一条sql可以统计所需的不同的数据汇总