スレッドと投稿があるシステムを構築しようとしています。最も人気があり(ユーザーは「いいね」ボタンをクリックして人気を高めることができます)、ほとんどの投稿があるスレッドを取得しようとしています。問題は、ほとんどの投稿で結果を並べ替えてから、いいねした投稿で並べ替えることです。
たとえば、投稿が300、いいねが200のスレッドがあり、別のスレッドがいいねが300、いいねが201のスレッドがある場合、2番目の投稿を選択します。
一言で言えばテーブル構造:
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をorderステートメントのtopiclike列の前に配置しました。topic_idの選択/順序付けが優先されることを期待しています。
更新:クエリが更新されました。