Вчера я получил помощь по функции, позволяющей правильно рассчитать количество элементов в столбце на основе нескольких критериев / столбцов.Однако, если есть способ получить количество DISTINCT для всех записей в таблице на основе агрегированного оператора GROUP BY.
SELECT TIME = ap.day,
acms.tenantId,
acms.CallingService,
policyList = ltrim(sp.value),
policyInstanceList = ltrim(dp.value),
COUNT(*) AS DISTINCTCount
FROM dbo.acms_data acms
CROSS APPLY string_split(acms.policyList, ',') sp
CROSS APPLY string_split(acms.policyInstanceList, ',') dp
CROSS APPLY (select day = convert(date, acms.[Time])) ap
GROUP BY ap.day, acms.tenantId, sp.value, dp.value, acms.CallingService
Я просто хотел бы знать, будет ли способ увидеть,Есть обходной путь для совместного использования DISTINCT и Count (*), и повлияет ли это на мои результаты, чтобы сделать этот алгоритм потенциально неуязвимым для дублирующихся записей.
Причина, по которой я должен использовать COUNT (*), заключается в том,потому что я агрегирую на основе каждого столбца в таблице, а не только определенного столбца или нескольких.