gpt4 book ai didi

mysql - 从mysql数据库获取最大计数

转载 作者:太空宇宙 更新时间:2023-11-03 11:59:49 25 4
gpt4 key购买 nike

我有如下表格

+------+------+------+----------+
| vno | ino | cno | quantity |
+------+------+------+----------+
| V1 | I1 | C1 | 150 |
| V1 | I5 | C1 | 100 |
| V1 | I5 | C4 | 150 |
| V2 | I2 | C1 | 50 |
| V2 | I2 | C4 | 500 |
| V2 | I2 | C5 | 500 |
| V2 | I3 | C4 | 300 |
| V2 | I6 | C4 | 300 |
| V3 | I1 | C1 | 10 |
+------+------+------+----------+

我正在尝试检索已购买最大数量的客户

以下是我的查询

SELECT Delivery.cno, sum(Delivery.quantity) as totalQuantity From Delivery group by Delivery.cno

此查询给出以下结果

+------+---------------+
| cno | totalQuantity |
+------+---------------+
| C1 | 310 |
| C4 | 1250 |
| C5 | 500 |
+------+---------------+

然后,我修改它以获得最大总数量,

SELECT B.cno,max(B.totalQuantity) as maxQuantity from  
(SELECT Delivery.cno, sum(Delivery.quantity) as totalQuantity From Delivery group by Delivery.cno ) B order by B.cno;

它给了我以下结果

+------+---------------+
| cno | totalQuantity |
+------+---------------+
| C1 | 1250|

这个答案是完全错误的,因为 C1 的计数是 310,而不是 1250

谁能帮我理解我的查询有什么问题

提前致谢

最佳答案

你的查询是有效的,因为如果 select 中的列没有聚合或 grouped by,MySQL 不会抛出错误code>,因此它设法显示 B.cno,但结果不正确。

如果总和是唯一的,您可以使用以下方法:按总 sum 降序排列记录并获取第一条记录(最大 totalQuantity):

select Delivery.cno
, sum(Delivery.quantity) as totalQuantity
from Delivery
group by Delivery.cno
order by totalQuantity desc
limit 1

否则,您可以使用上面的查询找到最大的 totalQuantity,然后检查每个分组的 Delivery.cno 是否为 sum(Delivery.quantity) 等于使用 having 子句的最大值。

关于mysql - 从mysql数据库获取最大计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29999612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com