SQL — Порядок по номерам строк?

#sql #select #sql-order-by

#sql #выберите #sql-порядок по

Вопрос:

Итак, у меня есть таблица с 5 столбцами: id, user_id, news_id, comment and date . Каждый раз, когда пользователь публикует что-то в области комментариев к новостям, данные вставляются в эту таблицу.

Теперь я пытаюсь создать функцию top poster, которая будет отображать людей с наибольшим количеством опубликованных комментариев.

Я хотел бы знать, как упорядочить результат из этой таблицы в зависимости от того, сколько раз этот идентификатор пользователя присутствует в таблице.

Например:

 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
 

и так далее.

Заранее спасибо.

Ответ №1:

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

Ответ №2:

TSQL

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

Ответ №3:

Я думаю, вы путаете строки со столбцами, но неважно. Это легко сделать:

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

Ответ №4:

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

Ответ №5:

«Итак, у меня есть таблица с 5 строками: id, user_id, news_id, комментарий и дата. Каждый раз, когда пользователь публикует что-то в области комментариев к новостям, данные вставляются в эту таблицу. » В этом ответе я предполагаю, что вы имели в виду 5 столбцов выше.

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