昨天我得到了一个函数的帮助,该函数可以根据多个条件/列正确获取一列中多个项目的计数。但是,如果有一种方法可以基于聚合的GROUP BY语句获取表中所有条目的DISTINCT计数。
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(*)的原因是因为我基于表中的每一列进行汇总,而不仅仅是特定的列或多列。
答案 0 :(得分:2)