SELECT Month_Year, COUNT(DISTINCT Week_Num)
FROM Calendar
GROUP BY Month_Year
Это устраняет один уровень агрегации и является гораздо более читабельным. Я не уверен, что это будет работать лучше.
ОБРАЗЕЦ ДЛЯ ДОКАЗАТЕЛЬСТВА КОНЦЕПЦИИ:
DECLARE @t table (DT smalldatetime, week_num int, month_year varchar(100))
INSERT INTO @t
VALUES
('1996-01-27 00:00:00.000', 1021,'01/1997'),
('1996-01-28 00:00:00.000', 1021,'01/1997'),
('1996-01-29 00:00:00.000', 1021,'01/1997'),
('1996-02-03 00:00:00.000', 1022,'01/1997'),
('1996-02-04 00:00:00.000', 1022,'01/1997'),
('1996-02-10 00:00:00.000', 1023,'01/1997'),
('1996-02-11 00:00:00.000', 1023,'01/1997')
SELECT Month_Year, COUNT(DISTINCT Week_Num)
FROM @t
GROUP BY Month_Year
Возвращает:
Month_Year (No column name)
01/1997 3