Для удобства чтения я бы переместил критерии в предложение WHERE
, где оно принадлежит:
CREATE VIEW dbo.MostRecentMonth AS
SELECT <fields>
FROM dbo.CensusFile
WHERE census_month = (SELECT MAX(census_month) FROM dbo.CensusFile);
Другой вариант - это оконная функция, но я не думаю, что она будет быстрее, и дажеменее читабельный.
CREATE VIEW dbo.MostRecentMonth AS
SELECT <fields>
FROM
(
SELECT <fields>, MAX(census_month) OVER () AS maxmonth
FROM dbo.CensusFile
) with_maxmonth
WHERE census_month = maxmonth;
Самое важное для каждого запроса - наличие индекса census_month
:
CREATE INDEX idx ON MostRecentMonth(census_month);