gpt4 book ai didi

mysql - 我可以在 GROUP BY 之前执行 COUNT()

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

我正在为学校做 mySQL 作业,但遇到了一个问题。我还是 mySQL 的新手。 COUNT(o.customer_id) 没有按照我想要的方式工作。我希望它计算订单数量,但它正在计算所有项目。即客户 1 有 2 个订单,但它返回 3,因为一个订单有两个项目。我有三个表,一个是客户,另一个是订单,另一个是每个订单上的每个项目。我在下面提出了我的疑问。任何帮助都会很棒。

SELECT email_address, COUNT(o.order_id) AS num_of_orders,
SUM(((item_price - discount_amount) * quantity)) AS total
FROM customers c JOIN orders o
ON c.customer_id = o.customer_id
JOIN order_items ot
ON o.order_id = ot.order_id
GROUP BY o.customer_id
HAVING num_of_orders > 1
ORDER BY total DESC;

最佳答案

就像使用Distinct 保留字一样简单:

SELECT email_address, COUNT(distinct o.order_id) AS num_of_orders

关于mysql - 我可以在 GROUP BY 之前执行 COUNT(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12848962/

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