Я понимаю, что это очень надуманный пример, но я упростил полную версию до следующего, который демонстрирует проблему:
CREATE VIEW model.Appointments_Partition1
WITH SCHEMABINDING AS
SELECT CONVERT(varchar(15), AppointmentId) as Id,
ap.AppTypeId as AppointmentTypeId,
ap.Duration as DurationMinutes,
ap.AppointmentId as EncounterId,
COUNT_BIG(*) as __count_big
FROM dbo.Appointments ap
JOIN dbo.PracticeCodeTable pct ON SUBSTRING(pct.Code, 1, 1) = ap.ScheduleStatus
AND pct.ReferenceType = 'AppointmentStatus'
WHERE ap.AppTime > 0
GROUP BY CONVERT(varchar(15), AppointmentId), ap.AppTypeId, ap.Duration, ap.AppointmentId
CREATE UNIQUE CLUSTERED INDEX [IX_Appointments_Partition1_Id]
ON model.Appointments_Partition1 ([Id]);
Я получаю:
Сообщение 8668, Уровень 16, Состояние 0, Строка 12
Невозможно создать кластеризованный индекс «IX_Appointments_Partition1_Id» для представления «PracticeRepository.model.Appointments_Partition1», так как список выбора представления содержит выражение для результата статистической функции или столбца группировки. Попробуйте удалить выражение из результата статистической функции или столбца группировки из списка выбора.
Я включаю count_big ... так почему группа связана с проблемой? .... и как я могу устранить ошибку?