Создание материализованного представления в Azure Хранилище данных SQL Ошибка - PullRequest
0 голосов
/ 30 марта 2020

Я получаю сообщение об ошибке:

Невозможно создать кластеризованный индекс 'SalesByTerritory' для представления 'Sample.wwi.SalesByTerritory', поскольку он не агрегирует результаты. Попробуйте изменить определение представления.

Я пытаюсь создать материализованное представление в Azure SQL Хранилище данных (теперь Azure Synapse). Я просто пытаюсь создать представление с таблицей продаж и получить название и дату территории из другой таблицы. Ниже код, который я использую:

CREATE MATERIALIZED VIEW wwi.SalesByTerritory  
WITH (distribution = hash([Sale Key]))
AS
SELECT Sale.[Sale Key],
    Sale.[Description],
    Sale.[Quantity],
    Sale.[Profit],
    City.[Sales Territory],
    SaleDate.[Date],
    SaleDate.[Fiscal Month Label]
FROM wwi.fact_Sale Sale 
JOIN wwi.dimension_City City ON Sale.[City Key] = City.[City Key]
JOIN wwi.dimension_Date SaleDate ON Sale.[Invoice Date Key] = SaleDate.[Date]

1 Ответ

0 голосов
/ 15 апреля 2020

Вероятно, это связано с тем, что материализованные представления Azure Synapse (DW) могут работать только при некоторой агрегации (возможно, для обеспечения уникальности некоторых столбцов). На этой странице говорится о необходимости выполнения любого из следующих двух условий:

  1. Список SELECT содержит функцию агрегирования.
  2. GROUP BY используется в определении материализованного представления, и все столбцы в GROUP BY включены в список SELECT. В предложении GROUP BY можно использовать до 32 столбцов.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...