获取列中每个值的列表以及从最高到最低排序的次数

时间:2011-12-26 01:19:20

标签: mysql sql database

我有以下数据库

person_id| field a | field b |friend_id

假设friend_id是给定人喜欢的人的id,并且它是可选的,对应于0的默认情况;

我想按照他们在群组中的受欢迎程度对人员进行排序,即按照该人的身份被列为friend_id的次数的顺序排列。

查询是什么?

2 个答案:

答案 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