假设我现在有3张表uesr表
userid,username,groupid
1,张三,a组
2,王五,a组
3,李四,a组
4,琉璃,b组
5,鱼鱼,c组
6,卡卡,c组group表
groupid groupname
01,a组
02,b组
03,c组auth表
authid,authvalue,type
001,01, 00群组
002, 02,00群组
003, 3, 01人员
004,03, 00群组我现在想获得的结果为
authid,type,authvalue,groupname, userid, count
001, 00群组,01, a组, 1, 3
001, 00群组,01, a组, 2, 3
001, 00群组,01, a组, 3, 3
002, 00群组,02, b组, 4, 1
004, 00群组,03, c组, 5, 2
004, 00群组,03, c组, 6, 2我是这样写的select authid,type,authvalue,groupname,userid
from auth
left join group on auth.authvalue=group.groupid
left join user on group.id=user.groupid
where type='00群组'但是我不知道如何能够把count列加上去,就是我想知道在同一个authid下的群组中有多少个人
userid,username,groupid
1,张三,a组
2,王五,a组
3,李四,a组
4,琉璃,b组
5,鱼鱼,c组
6,卡卡,c组group表
groupid groupname
01,a组
02,b组
03,c组auth表
authid,authvalue,type
001,01, 00群组
002, 02,00群组
003, 3, 01人员
004,03, 00群组我现在想获得的结果为
authid,type,authvalue,groupname, userid, count
001, 00群组,01, a组, 1, 3
001, 00群组,01, a组, 2, 3
001, 00群组,01, a组, 3, 3
002, 00群组,02, b组, 4, 1
004, 00群组,03, c组, 5, 2
004, 00群组,03, c组, 6, 2我是这样写的select authid,type,authvalue,groupname,userid
from auth
left join group on auth.authvalue=group.groupid
left join user on group.id=user.groupid
where type='00群组'但是我不知道如何能够把count列加上去,就是我想知道在同一个authid下的群组中有多少个人
from auth
left join group on auth.authvalue=group.groupid
left join user on group.id=user.groupid
where type='00群组'
我稍微改成
select authid,type,authvalue,groupname,userid,count(distinct userid) over(partition by authvalue)
from auth
left join group on auth.authvalue=group.groupid
left join user on group.id=user.groupid
where type='00群组'