SELECT row_number() OVER (PARTITION BY Region) as Row_No, Name as Product, Category, Sales,
ROUND(SUM(Sales) OVER (PARTITION BY Region, Category), 2) as Category_Sales,
ROUND(SUM(Sales) OVER (PARTITION BY Region), 2) as Regional_Sales
FROM table
WHERE Region = "North"
ORDER BY Category, Sales;