gpt4 book ai didi

mysql - 获取属于某个组的用户数以及通过该组的用户属于该组的订单数

转载 作者:行者123 更新时间:2023-11-29 06:36:56 26 4
gpt4 key购买 nike

我有一个 user_groups 表、一个 users 表和一个 orders 表。

它们之间的关系是这样的:users.group_id, orders.user_id

我正在尝试获取属于每个组的用户数量,以及通过其用户属于每个组的订单数量。

我的代码:

select user_groups.*, count(users.id) as user_count, count(orders.id) as order_count

from user_groups

left join users on user_groups.id=users.group_id
left join orders on users.id=orders.user_id

group by user_groups.id

预期输出:

id | user_count | order_count
1 | 5 | 67
2 | 1 | 1

实际输出:

enter image description here

订单数量应该是 5,而不是 71:

enter image description here

最佳答案

使用计数(不同):

select ug.*, count(distinct u.id) as user_count, count(distinct o.id) as order_count    
from user_groups ug left join
users u
on ug.id = u.group_id left join
orders o
on u.id = o.user_id
group by ug.id;

count(id) 计算非NULL 值的数量。您显然想要计算不同值的数量,这就是distinct所做的。

关于mysql - 获取属于某个组的用户数以及通过该组的用户属于该组的订单数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53416715/

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