我正在尝试创建一个新列,每个客户端ID包含不同服务代码的数量。我在第二个查询中的最后一列全部为0。
SELECT SERVICE_CODE, COUNT(SERVICE_CODE) AS SERVICE_COUNTS
FROM #TAPMAR
GROUP BY SERVICE_CODE
SELECT T.*, COALESCE(D.SERVICE_COUNTS, 0)
FROM #TAPMAR T
LEFT JOIN(
SELECT SERVICE_CODE, COUNT(*) AS SERVICE_COUNTS
FROM #TAPMAR
GROUP BY SERVICE_CODE) D ON D.SERVICE_CODE = T.CASE_NUM;
答案 0 :(得分:1)
问题可能是join
。 。 。我不明白为什么service_code
应与case_num
匹配。
我建议在任何情况下使用窗口函数:
SELECT T.*,
COUNT(*) OVER (PARTITION BY SERVICE_CODE) as NumOnService,
COUNT(*) OVER (PARTITION BY CASE_NUM) as NumOnCase
FROM #TAPMAR T;
这增加了服务和案例的计数。我不确定你真正想要哪一个。