gpt4 book ai didi

MySQL 在使用 max() 时无效使用组函数

转载 作者:可可西里 更新时间:2023-11-01 08:02:46 25 4
gpt4 key购买 nike

在我的数据库中,每个查询都可以有多个与之关联的预订。每个预订都会有一些与预订相关的人(pax)。我想对每次查询的 pax 的最大值求和(例如,如果有 3 个预订,pax = 3, 3, 4 那么我想对每个查询使用 4)。目前我有这个:

SELECT SUM(MAX(b.pax))  AS `pax`
FROM enquiry e

LEFT JOIN booking b ON b.enquiry_id = e.id

但它返回错误“无效使用组函数”。我究竟做错了什么?如果我不使用“max”,那么它会对 pax 的所有值求和,而不是每次查询只求 1 个,如果我使用“GROUP BY e.id”,那么它不会返回一个数字。

最佳答案

你不能这样使用两个聚合函数,你可以这样做:

SELECT SUM(MaxPax) AS Total
FROM
(
SELECT MAX(b.pax) AS MaxPax
FROM enquiry e
LEFT JOIN booking b ON b.enquiry_id = e.id
GROUP BY b.enquiry_id
) AS t;

因此,内部查询将为您提供每次查询的最大 pax。然后,在外部查询中,您可以使用 SUM 获取总和。

关于MySQL 在使用 max() 时无效使用组函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47942369/

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