数据库结构
表'申请人'
id org_id team_id
1 1 1
表'团队'
id name
1 Test
表'teams_members'
id team_id user_id
1 1 1
2 1 2
表'users_playeraccounts'
id user_id summoner_id rank_solo
1 1 1 5
2 1 2 8
3 2 3 7
select sum(rank_solo) as rank_sum,
max(rank_solo) as highest_rank,
count(tt.id) as members,
t.name,
o.team_id
from applicants o
join teams t on o.team_id = t.id
join teams_members tt on t.id = tt.team_id
join users_playeraccounts p on tt.user_id = p.user_id
where org_id = :org
group by team_id
这个offcourse给我一个像
的结果 rank_sum highest_rank members name team_id
20 8 3 Test 1
有没有办法让我用他们的玩具帐户来计算会员数
如果1个用户有2,那么它将是2
还有一种让我把它保持为1的方式所以它实际上只计算在teams_members中找到的行忽略users_playeraccounts中的条目?
我想通过查询收到2和3。
答案 0 :(得分:1)
您想要计算tt.id
中不同条目的数量,因此您可以这样做:
SELECT ... COUNT(DISTINCT tt.id) AS distinct_members ...
您不会计算每个行的非空tt.id
,而是计算唯一值的数量。