如何撰寫查詢來為每個提供的 ID 獲取 5 條記錄?假設我有 5 條評論,我想加載 5 條回復,以及每條評論的總回復計數。
就像是
select ReplyId, ReplyContent, COUNT(*) TotalCount
from Replies R
where R.CommentId in (1,2,3,4,5)
Order By R.PublishDate Desc
TAKE 5, for each id
在這種情況下,所需的結果將是最多包含 50 條記錄的資料集。每條評論不超過 5 條回復,以及每條評論的回復總數。
uj5u.com熱心網友回復:
ROW_NUMBER例如,您可以使用:
SELECT ReplyId, ReplyContent, TotalCount
FROM
(
SELECT
CommentId,
ReplyId,
ReplyContent,
COUNT(*) OVER(PARTITION BY R.CommentId) TotalCount,
ROW_NUMBER() OVER(PARTITION BY R.CommentId ORDER BY R.PublishDate DESC) row_n
FROM
Replies R where R.CommentId in (1,2,3,4,5)
) t
WHERE t.row_n <= 5
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/329767.html
標籤:sql sql-server 查询语句
上一篇:使用多維陣列作為源更新SQL行
下一篇:檢查日期是圣誕節還是元旦的函式
