Вы также можете попробовать другой подход, как показано ниже.
Create Table Result(Id int, Title Varchar(10), Category Varchar(10), SubCategory Varchar(10), Value Int)
Insert Into Result Values(1, 'Part-1','CatX', 'A', 100),
(2 ,'Part-1','CatX', 'B', 0),
(3 ,'Part-1','CatX', 'C', 50),
(4 ,'Part-1','CatY', 'A', 100),
(5 ,'Part-1','CatY', 'B', 0),
(6 ,'Part-1','CatY', 'C', 100),
(7 ,'Part-2','CatM', 'A', 30),
(8 ,'Part-2','CatM', 'B', 10),
(9 ,'Part-2','CatM', 'C', 100),
(10 ,'Part-2','CatN', 'A', 50),
(11 ,'Part-2','CatN', 'B', 10),
(12 ,'Part-2','CatN', 'C', 80)
Select Title, SubCategory, AVG(Value) as Average from Result
Group By Title, SubCategory
Select Title, SubCategory, SUM(Value) / COUNT(*) as Average
From Result Group By Title, SubCategory
Вывод в обоих случаях аналогичен приведенному ниже.

Вы можете найти живую демонстрацию Демонстрацию здесь