我有以下数据库
person_id| field a | field b |friend_id
假设friend_id是给定人喜欢的人的id,并且它是可选的,对应于0的默认情况;
我想按照他们在群组中的受欢迎程度对人员进行排序,即按照该人的身份被列为friend_id的次数的顺序排列。
查询是什么?
答案 0 :(得分:1)
什么组?
根据我的阅读,您希望通过" GROUP"看到最受欢迎的friend_ID。 但我不确定你的意思是什么群体。
所以这会给你最受欢迎的#34; Friend_ID"在整个桌子上。
Select count(Friend_ID), Friend_ID
from table
Group by friend_ID
Order by count(friend_ID) DESC
答案 1 :(得分:0)
select
YT1.Person_ID,
YT1.FieldA,
YT1.FieldB,
PreQuery.Popularity
from
YourTable YT1
JOIN ( select YT.friend_id,
count(*) as Popularity
from YourTable YT
group by YT.friend_id ) PreQuery
on YT1.Person_ID = PreQuery.Friend_ID
order by
PreQuery.Popularity DESC