gpt4 book ai didi

mysql - Count FROM 另一列 MySQL

转载 作者:太空宇宙 更新时间:2023-11-03 10:48:12 25 4
gpt4 key购买 nike

我的数据库中有两个表:

1.组

|------------|------------|------------|
|GroupId |GroupName |GroupDesc |
|------------|------------|------------|
|3 |Group 3 |3rd Group |
|5 |Group 5 |5th Group |
|7 |Group 7 |7th Group |
|9 |Group 9 |9th Group |
|------------|------------|------------|

2.组细节

|------------|--------------|-----------------|
|GroupId |MemberUsername|GroupConfirmation|
|------------|--------------|-----------------|
|3 |User001 |Pending |
|3 |User002 |Joined |
|3 |User003 |Joined |
|3 |User004 |Joined |
|5 |User001 |Joined |
|5 |User004 |Joined |
|7 |User004 |Joined |
|------------|--------------|-----------------|

我希望能够从选定的 MemberUsername 和他的 GroupConfirmation 中显示 GroupId、GroupName、GroupDesc 和 TotalMember(来自他加入的每个组的总成员)

我已成功选择 GroupId、GroupName、GroupDesc 使用:

SELECT a.GroupId, GroupName, GroupDesc
FROM groups a, groupdetail b
WHERE a.GroupId =b.GroupId
AND b.MemberUsername = 'user004'
AND b.GroupConfirmation = 'Joined'

但我不知道如何计算每个组的总成员数,我尝试使用 COUNT(b.MemberUsername) 但结果只显示一行,

这是我想要得到的结果集的例子(来自User004)

|------------|-------------|------------|------------|
|GroupId |GroupName |GroupDesc |TotalMember |
|------------|-------------|------------|------------|
|3 |Group 3 |3rd Group |4 |
|5 |Group 5 |5th Group |2 |
|7 |Group 7 |7th Group |1 |
|------------|-------------|------------|------------|

有人可以帮我吗?

谢谢你

最佳答案

你需要一个group bycount:

SELECT g.GroupId, g.GroupName, g.GroupDesc, COUNT(*)
FROM groups g JOIN
groupdetail gd
ON g.GroupId = gd.GroupId
GROUP BY g.GroupId, g.GroupName, g.GroupDesc;

如果您想计算所有成员,则WHERE 子句是多余的。如果您想要用户加入的组总数,则添加以下 having 子句:

HAVING SUM(gd.MemberUsername = 'user004' AND gd.GroupConfirmation = 'Joined') > 0

这将仅根据具有 'user004' 的组过滤组。

关于mysql - Count FROM 另一列 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28270699/

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