gpt4 book ai didi

mysql:列出所有客户下的订单数

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

我有 2 个简单的表,例如客户和订单,其中客户可以有 0 到 n 个订单。我想要一个这样的列表:10 位客户下单 0 笔4 位客户下单 1 个5位客户下了2个订单2位客户下了3笔订单... 等等。到目前为止我已经:

SELECT customers.id FROM customers
LEFT JOIN orders ON orders.customerId = customers.id
HAVING COUNT(orders.id) = 1;

其中列出了所有下过 1 个订单的客户,但正如我所说,我需要一个包含所有可能性的列表。

最佳答案

SELECT COUNT(*), t.orderCount
FROM
(
SELECT u.id, COUNT(o.id) AS orderCount
FROM users u LEFT JOIN orders o
ON u.id = o.userId
GROUP BY u.id
) t
GROUP BY t.orderCount

内部查询将给出每个用户及其订单总额:

user total
1 2
2 3
3 2
4 3

外部查询对该总数进行GROUP BY,以计算共享总数的客户数量:

# customers  total
2 2
2 3

关于mysql:列出所有客户下的订单数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34942033/

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