MySQL分组统计问题:如何同时获取总订单数与待处理财务订单数
解决方案
你可以在原查询中新增统计字段,用SUM()配合条件判断来实现需求,单条MySQL语句如下:
SELECT url, COUNT(url) AS total_orders, SUM(CASE WHEN finance = 'pending' THEN 1 ELSE 0 END) AS pending_orders FROM orders GROUP BY url ORDER BY total_orders DESC;
补充说明
COUNT(url)保留原逻辑,用于统计每个店铺(url)的总订单数;SUM(CASE WHEN finance = 'pending' THEN 1 ELSE 0 END)通过条件判断,仅对finance值为pending的记录计数,求和后得到对应店铺的待处理订单数;- 也可以简化写法:
SUM(finance = 'pending'),因为MySQL中布尔表达式成立时返回1,不成立返回0,直接求和就能得到符合条件的行数。
内容的提问来源于stack exchange,提问作者Hannah James
相关产品推荐
相关产品推荐

