Предполагая, что есть таблица Friend
, содержащая UserID
и FriendID
, и таблица PostInteraction
, содержащая PostID
и UserID
, вы должны:
select pi.PostID, count(distinct f.FriendID) as Count
from PostInteraction pi
inner join Friend f on pi.UserID = f.FriendID
where f.UserID = @MyUserID
group by pi.PostID
order by count(distinct f.FriendID) desc
У меня естьПредполагается, что один и тот же друг может иметь несколько взаимодействий с сообщением, и что вы хотите считать это только один раз, таким образом, при подсчете используется DISTINCT
.