Я пытаюсь создать материализованное представление с помощью Microsoft SQL Server Management Studio 14.0.17285.0.Ниже приведен сценарий, с которым я закончил, чтобы добиться того же.
Мой план состоит в том, чтобы создать представление и создать индекс поверх него.
use data_warehouse;
--Set the options to support indexed views.
SET NUMERIC_ROUNDABORT OFF;
SET ANSI_PADDING, ANSI_WARNINGS, CONCAT_NULL_YIELDS_NULL, ARITHABORT,
QUOTED_IDENTIFIER, ANSI_NULLS ON;
GO
CREATE VIEW products_yearly_v2
WITH SCHEMABINDING
AS
SELECT
p.product_id AS product_id,
p.product_description AS product_name,
d.order_year AS order_year,
SUM(s.order_total) AS sal_by_dept
FROM
[data_warehouse].[dbo].orders_fact AS s
INNER JOIN
[data_warehouse].[dbo].time_dimension AS d ON s.time_id = d.order_date
INNER JOIN
[data_warehouse].[dbo].product_dimension AS p ON s.product_id = p.product_id
GROUP BY
d.order_year, p.product_id, p.product_description;
CREATE UNIQUE CLUSTERED INDEX IDX_V1
ON products_yearly_v1 (order_year, product_id);
Я получаю эту ошибку:
Сообщение 156,Уровень 15, Состояние 1, Процедура products_yearly_v2, Строка 12 [Пакетная строка запуска 7]
Неверный синтаксис рядом с ключевым словом 'CREATE'
Обновление Добавлен COUNT_BIG (*) вдля создания индекса.
SELECT COUNT_BIG(*) as count_big, p.product_id as product_id, d.order_year as order_year, sum(s.order_total) AS sal_by_dept ....
Удалено описание продукта из GROUP BY
GROUP BY d.order_year,p.product_id;
Readded,
USE data_warehouse