我試圖在 SQL Server 中的每個組之后插入一個新行。
這是原表
這是預期的輸出
我在這里遇到的問題我不確定如何在我正在創建的新視圖中將它們中的兩個混合在一起。
獲取最后一條記錄:
WITH new_students_table AS
(
SELECT
m.*,
ROW_NUMBER() OVER (PARTITION BY Subject ORDER BY Subject DESC) AS student
FROM
students AS m
)
SELECT *
FROM ranked_messages
WHERE student = 1;
要得到總和:
SELECT
[Subject] = COALESCE([Subject], 'Total'),
[Score] = SUM([Score])
FROM
students
GROUP BY
GROUPING SETS(([Subject]), ());
任何幫助將不勝感激。
uj5u.com熱心網友回復:
這似乎可以解決問題。
通知row_number()
和第一個Grouping Sets
Select Subject = case when StudentID is null Then 'Total ' Subject else Subject end
,StudentID
,Score=sum(Score)
From (Select *
,RN=row_number() over (partition by Subject order by StudentID)
From YourTable
) src
GROUP BY GROUPING SETS( ([Subject],[StudentID],[RN])
,([Subject])
);
結果
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/531053.html
標籤:sql服务器
上一篇:將多行合并為一行