我正在尝试执行以下操作
我想计算风险代码被拨打的次数,并将其按风险代码分组,但如果它没有风险代码,我想将其命名为无风险代码并计算多少次它似乎
即
表格调用数据包含以下内容
Number|Name|Contacttime|userref
075 |Jim | 10:00 | 1112
072 |Jim | 10:01 | 1112
077 |Bob | 10:00 | 1111
099 |Jane| 10:01 | 1000
RiskTable
Number|Name|RiskGroup |userref
075 |Jim |H | 1112
072 |Jim |M | 1112
077 |Bob |L | 1111
答案 0 :(得分:0)
SELECT COUNT(*), b.RiskGroup
FROM CallData a
JOIN RiskTable b
ON a.Number = b.Number
GROUP BY b.RiskGroup;
我认为应该为GROUP BY处理的每个RiskGroup提供COUNTS。 JOIN将两个表链接到公共字段Number。 至于给一个空白的RiskGroup一个不同于默认值(null)的名字,我不太清楚如何处理它。
也许尝试做这个单独的查询?
SELECT COUNT(*) as NoRiskCode
FROM CallData a
WHERE a.Number NOT IN (
SELECT Number FROM RiskTable
);
这会计算CallData表中有多少条记录,这些记录中的数字不会存在于RiskTable中。
答案 1 :(得分:0)
你的意思是这样的吗?
with cte as (
select u.name, isnull(riskgroup, 'NoRisk') as riskGroup from CallData as u
left join RiskTable as r on r.name = u.name )
select count(*) , riskgroup from cte group by riskGroup
结果样本:
count riskgroup
----------- --------------------
2 H
1 L
2 M
1 NoRisk