我有两张桌子。其中一个包含userData,另一个包含链接到组中用户的userGroup。 像用户这样的手段可以在0个或更多组中。
我试图使用如下所示的查询来获取此列:
SELECT distinct(a.userID), a.userName, Count(b.userID_FID)
FORM userData a,
userGroup b
WHERE a.userID = b.userID_FID
但不知何故,Count部分给我一个错误的数字。
答案 0 :(得分:1)
SELECT max(a.userName), Count(distinct b.userID_FID)
FROM userData a
JOIN userGroup b
ON a.userID = b.userID_FID
GROUP BY a.userID
我的建议是不要使用来自
的许多表答案 1 :(得分:0)
这将为您提供每个用户所在的组数。
要构建测试场景,请使用:
创建表#groups
(userID_FID int
,group int
);
create table #user
(userID int);
insert into #groups values (1, 5);
insert into #groups values (1, 2);
insert into #groups values (1, 3);
insert into #groups values (1, 4);
insert into #groups values (2, 3);
insert into #groups values (2, 4);
insert into #groups values (3, 1);
insert into #groups values (3, 5);
insert into #user values (1);
insert into #user values (2);
insert into #user values (3);
select * from #groups;
select * from #user;
根据上面的测试场景,这件作品是您想要的查询:
select userid, count(*) as NumberOfGroups
from #groups g
, #user u
where g.userID_FID = u.userID
group by userID;