SQL按销售代表GROUP BY统计唯一线索数与成交数量的查询方法
解决方案
直接使用条件聚合即可在一次查询中得到两个统计指标,SQL语句如下:
SELECT AgentId, COUNT(DISTINCT BuyerEmail) AS UniqueLeads, COUNT(DISTINCT CASE WHEN Category = 3 THEN BuyerEmail END) AS QtySold FROM SalesLeads GROUP BY AgentId;
逻辑说明
UniqueLeads字段直接对全部分组内的BuyerEmail去重计数,符合唯一线索数的统计规则。QtySold字段通过CASE WHEN做条件过滤:仅当Category=3时返回BuyerEmail,其余情况返回NULL,而COUNT(DISTINCT)会自动忽略NULL值,最终得到去重后的成交买家数量。
注意:如果你表中存储代理ID的字段实际为
InitialAgent(和你之前单独查询的分组字段对齐),把SELECT和GROUP BY后的AgentId替换为InitialAgent即可。
内容的提问来源于stack exchange,提问作者Brian Salta
相关产品推荐
相关产品推荐

