我想要在不对元素进行分组的情况下找出特定列中项目的出现情况。这就是情况。
用户表:
UserID : Name
1 User1
2 User2
标签:
TagID : Tag
1 Tag1
2 Tag2
3 Tag3
UserTags:
UserID : TagID
1 1
1 2
2 3
现在返回以下查询。
select ut.tagid
,t.tag,ut.userid
from tags t
inner join usertags ut on ut.tagID=t.tagid
order by userid
结果:
TagID : Tag : UserID
1 Tag1 1
2 Tag2 1
3 Tag3 2
哪个是对的。我只想在此结果集中再添加一列,以便它告诉我结果集中UserID
的明确计数。所以我的结果集看起来像这样。
必填结果集:
TagID : Tag : UserID : UserIDoccurrence
1 Tag1 1 2
2 Tag2 1 2
3 Tag3 2 1
如你所见。由于userID = 1
的用户有两个结果。我在2
列中获得UserIDOccurrence
,在UserID 2中获得了1。
答案 0 :(得分:1)
有几种方法。这使用了相关的子查询:
select ut.tagid, t.tag, ut.userid,
(select count(*) from usertags ut2 where ut2.userid = ut.userid) as totalcount
from tags t inner join
usertags ut
on ut.tagID = t.tagid
order by userid;