0

我知道我的标题有点误导,但我不确定什么是好的标题。

Authored 有 2 列,即 ID、PubID

无论如何我可以将 P 输出到我的结果中。

我想知道对于每个相应的 ID、PubID 对,有多少行将具有相同的 PubID 但不同的 ID。

select a.authorId, P 
from Authored A 
WHERE 1 < 

(Select count(*) as P
from Authored B
where A.pubId = B.pubId
AND A.authorId<> B.authorId)

感谢所有回答的人。


桌子

AuthorID       pubID
1                2
3                2
4                2
10               1
11               1 

预期结果

AuthorID     NumberOfOccurenceOfDiffAuthIDWithSamePubID
1                       3
3                       3
4                       3
10                      2
11                      2
4

3 回答 3

1

更新使用count() over()

小提琴演示

select a.AuthorId, count(*) over(partition by pubId) counts
from Authored a 
order by a.AuthorId;
于 2013-10-15T09:41:50.617 回答
0

这就是你的意思,不清楚你在问什么?在这里拉小提琴

select
    count(ID) P,
    PubID
from
    (select distinct ID, pubID from Authored) d
group by
    PubID

This will give you the number of distinct `ID/authorId` for each `PubID\pubId`
于 2013-10-15T09:46:23.797 回答
0

Please try below query for MS Sql server:

select 
    *, 
    COUNT(*) over (partition by pubId) 
From Authored  
where authorId<>pubId
于 2013-10-15T09:40:55.450 回答