Я пытаюсь создать систему, в которой есть темы и сообщения. Я пытаюсь получить поток, который является самым популярным (пользователь может нажать кнопку «как», чтобы сделать его более популярным) и имеет большинство сообщений. Проблема заключается в том, чтобы упорядочить результаты по большинству сообщений, а затем по любимым сообщениям.Результаты заказа T-Sql с count() по приоритету
Так, например, если у меня есть нить 300 сообщений и 200 подобных .. в то время как другой поток получило 300 симпатий и 201 likes..I хотят второй пост будет выбран ..
Структура таблицы в двух словах:
topic:
--------
topic_id
liked
comment:
-------
comment_id
topic_id
Вот моя хранимая процедура до сих пор:
dbo.Trends
AS
SELECT TOP 1 title, COUNT(com.topic_id), COUNT(topc.user_id_liked)
FROM comment AS com
INNER JOIN topic AS topc ON com.topic_id=topc.topic_id
GROUP BY com.topic_id, topc.user_id_liked,title
ORDER BY COUNT(com.topic_id), COUNT(topc.user_id_liked) DESC
Я не уверен, если я прав, или я должен привести контролировать логику потока. Я помещал topic_id из таблицы тем перед тем, как понравился столбец в инструкции заказа. Ход выбора/упорядочения темы_ид будет воспринят.
ОБНОВЛЕНО: запрос обновлен.
Какую версию sql-сервера вы используете? – Arion
@Dmitry Makovetskiyd - Вы правы, полагая, что 'topic_id' будет иметь приоритет. Быстрый тест сказал бы вам об этом :) –
Я использую визуальную студию 2010 ... Я строю хранимые процедуры. У меня нет данных. Vs2010 имеет sql express 2008 (встроенный) –