假设我现在有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下的群组中有多少个人
解决方案 »
- 如何根据“列名”查询索引名 或者根据 “索引名 查询 列名
- oracle8i的 DBA studio 无法连接上本机的oracle10g
- 请问:sql语句中/*+ first_rows */是干什么的,在什么情况下使用?
- 在线给分就解: 无法为SQL*NET V2监听器创建NT服务
- 专用服务器如何合理配置PGA及SGA
- Oracle数据库最近频繁的会象死机一样,查询某些表无任何反应,该如何处理啊?
- 在oracle9.0.1中创建一个库及其用户名和密码的指令是什么?
- 请教:镜象和RAID的区别和联系
- 除了INTERNAL用户,其他都无法登陆,怎么回事?
- 如何创建临时表?
- system用户意外删除表,如何恢复?
- 递归统计问题
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群组'