我需要每月显示联系人数量。
我有以下查询,它给我不正确的结果。
SELECT
a.DATE_YYYYMM,
CONVERT(DECIMAL, COUNT(a.id)) / COUNT(DISTINCT a.id) Average_contacts_per_member_per_month,
COUNT(a.id) Count_Total_Contacts_Per_Month,
a.id
--INTO #temp_Contacts
FROM
(SELECT DISTINCT
*,
ISNULL(CONVERT(NVARCHAR(6), l.SERVICE_DATE, 112),'') AS SERVICE_DATE_YYYYMM
FROM l) a
WHERE
1=1
AND a.IS_V = 1
GROUP BY
id, a.DATE_YYYYMM
我的平均值和计数结果相同,我知道它们应该有所不同。
有什么想法吗?
答案 0 :(得分:1)
您按a.id
进行分组,因此计数总是为1。
你想要更像的东西:
SELECT a.DATE_YYYYMM,
CONVERT(DECIMAL, COUNT(a.id))/COUNT(DISTINCT a.id) as Average_contacts_per_member_per_month,
COUNT(a.id) as Count_Total_Contacts_Per_Month
FROM (SELECT DISTINCT *,
COALESCE(CONVERT(NVARCHAR(6), l.SERVICE_DATE, 112), '') AS SERVICE_DATE_YYYYMM
FROM [MCS].[JXM1563].[LTIH_SSIS] l
) a
WHERE a.IS_V = 1
GROUP BY a.DATE_YYYYMM