每种类型结果总和 mysql_mysql-总和列(每个重复的行数据仅一次)

针对含有重复订单的数据库表,查询要求返回失败订单的唯一计数及其总价,忽略完全相同的订单行(即同一电子邮件和总价)。当前查询返回所有失败订单的总数和总价,但需要去除重复项。解决方案在于结合DISTINCT和GROUP BY子句来实现这一目标。
摘要由CSDN通过智能技术生成

假设我有以下订单表,并且正在检索所有失败的订单.

+----+------------------+-------+--------+

| id | email | total | status |

+----+------------------+-------+--------+

| 1 | john@example.com | 39.99 | failed |

|----|------------------|-------|--------+

| 2 | john@example.com | 39.99 | failed |

|----|------------------|-------|--------+

| 3 | pete@example.com | 19.99 | failed |

+----+------------------+-------+--------+

我需要获取失败订单的总数以及它们的总数,但是每个重复行仅一次(当同一封电子邮件和总数相同时,行被视为重复)

目前,我有一个非常简单的查询,可以查询所有失败订单的总数.我不确定如何修改它以返回所需的数据(我尝试弄乱DISTINCT和GROUP BY无济于事.)

SELECT COUNT(*) AS `count`, SUM(`total`) AS `grand_total` FROM `orders` WHERE `status` = 'failed';

哪个返回:

+-------+-------------+

| count | grand_total |

+-------+-------------+

| 3 | 99.97 |

+-------+-------------+

我想返回的结果是:

+-------+-------------+

| count | grand_total |

+-------+-------------+

| 2 | 59.98 |

+-------+-------------+

(由于电子邮件和总计的值与第一行中的值相同,因此结果中将省略第二行)

是否可以在单个查询中检索此数据?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值