SQL - 按行数排序?

时间:2011-10-20 20:05:57

标签: sql select sql-order-by

所以我有一个包含5列的表:id, user_id, news_id, comment and date。每当用户在新闻的评论区域发布内容时,数据都会插入到此表中。

现在我正在尝试制作顶级海报功能,以显示发布评论最多的人。

我想知道如何根据表中存在user_id的次数从此表中排序结果。

例如:

1 - 134(user_id) -> 20 posts(that's how many times this user_id was found in the table.)
2 - 123 -> 19
3 - 168 -> 15

等等。

提前致谢。

5 个答案:

答案 0 :(得分:5)

SELECT user_id, COUNT (*) as comments
FROM table
GROUP BY user_id
ORDER BY comments DESC

答案 1 :(得分:2)

TSQL

    select userID, count(*) 
    from userIDtable 
    group by userID 
    order by count(*) desc, userID asc

答案 2 :(得分:1)

我认为你将列与列混淆,但没关系。这很容易做到:

SELECT
   user_id,
   COUNT(*) posts
FROM
   comments
GROUP BY
   user_id
ORDER BY
   posts DESC

答案 3 :(得分:0)

SELECT count(user_id) C, user_id FROM RECORDS ORDER BY C LIMIT 5

答案 4 :(得分:0)

“所以我有一个包含5行的表:id,user_id,news_id,comment和date。每当用户在新闻的评论区域发布内容时,数据就会被插入到这个表中。” 在这个答案中,我假设你的意思是上面的5列。

select user_id, count(*) num from tableName group by user_id order by num desc;