Sql server 优先客户细分
我的客户拥有来自不同产品组的产品。例如:Sql server 优先客户细分,sql-server,Sql Server,我的客户拥有来自不同产品组的产品。例如: Client Product group 1 All-in-one 1 Senior 2 All-in-one 2 Other 3 Senior 3 Other 4 Other 产品组具有优先级,因此,如果您同时拥有全能型和高级产品组的产品,您将被归类为全能型客户 按优先级排列的产品组包括: 一应俱全 前辈 其他 我想要一个每个客户只出现一次的视图,如: Client
Client Product group
1 All-in-one
1 Senior
2 All-in-one
2 Other
3 Senior
3 Other
4 Other
产品组具有优先级,因此,如果您同时拥有全能型和高级产品组的产品,您将被归类为全能型客户
按优先级排列的产品组包括:
Client Product group
1 All-in-one
2 All-in-one
3 Senior
4 Other
在没有大量视图的情况下,这可以在一个步骤中完成吗 如果只保留这些产品组,第一个可以工作,第二个可以灵活订购,但使用CTE
select id,min(pg) from #client
group by id
;with cte
as
(
select
id,
min(case when pg='All-in-one' then 1
when pg='senior' then 2
when pg='other' then 3
end ) pg
from
#client
group by id
)
select id,
case pg when 1 then 'All-in-one'
when 2 then 'Senior'
when 3 then 'other'
end as 'PG'
from cte
试试这个(您不需要使用客户机\u组
cte,因为您已经有了这个表):
结果:
Client Name
----------- ----------
1 All-in-one
2 All-in-one
3 Senior
4 Other
(4 row(s) affected)
当一个客户同时拥有这两个产品组时,你需要优先考虑保留哪一个产品组?@TheGameiswar是的,没错。对不起,如果不清楚的话
Client Name
----------- ----------
1 All-in-one
2 All-in-one
3 Senior
4 Other
(4 row(s) affected)