gpt4 book ai didi

mysql - 查询有多少客户下订单

转载 作者:行者123 更新时间:2023-11-29 12:20:05 26 4
gpt4 key购买 nike

所以我有两个表,一个是客户,另一个是订单。客户表有一个区域字段。客户可以有多个订单或没有订单。

我尝试过这个:

SELECT customer.region, count(*) 
FROM customer
LEFT JOIN order ON order.cid = customer.id
GROUP BY customer.region
ORDER BY count(*) DESC

不幸的是,这并没有排除没有订单的客户,而且如果客户有多个订单,也会对他们进行多次计数。

最佳答案

你有没有尝试过类似的事情

SELECT region, count(DISTINCT customer.id) 
FROM customer
INNER JOIN order ON order.cid = customer.id
GROUP BY region

本质上,INNER 连接仅返回已下订单的客户,而 DISTINCT 只会返回一次 customer.id,因此,如果客户已下多个订单,则此连接将仅返回一次 customer.id。只会带回他们的 customer.id 一次。

正如 Michael Y 所说,如果您想带回所有区域,无论它们是否有任何匹配的订单,请将 INNER 替换为 LEFT

关于mysql - 查询有多少客户下订单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29154173/

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