#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;