gpt4 book ai didi

mysql - 为什么聚合函数不起作用,除非使用 GROUP BY 语句?

转载 作者:行者123 更新时间:2023-11-29 04:01:22 25 4
gpt4 key购买 nike

计算 invoice 的价格(在单独的表中有 *invoice item*s 并链接到 invoices),我写了这个查询:

SELECT `i`.`id`, SUM(ii.unit_price * ii.quantity) invoice_price
FROM (`invoice` i)

JOIN `invoiceitem` ii
ON `ii`.`invoice_id` = `i`.`id`

WHERE `i`.`user_id` = '$user_id'

但它只产生了一行。

经过研究,我发现在查询末尾必须有 GROUP BY i.id。有了这个,结果符合预期。

在我看来,即使没有 GROUP BY i.id,也不会丢失任何东西,它应该可以正常工作!

请用一些简单的句子告诉我...

为什么我应该总是使用额外的!!! GROUP BY i.id没有它会丢失什么,也许作为最有效的问题,如何我应该记住我丢失了额外的 GROUP BY?!

最佳答案

您必须包括分组依据,因为有许多 ID 进入总和。如果您不指定它,那么 MySQL 只会选择第一个,并对整个结果集求和。 GroupBy 告诉 MySQL 对每个按实体分组的结果求和(或一般聚合)。

关于mysql - 为什么聚合函数不起作用,除非使用 GROUP BY 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17351887/

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