求一个SQL问题,划分数据

HuoLarry 2015-02-25 11:41:48
表A:
客户编码,区域,数量
1,广州,1
1,上海,2
1,北京,3
2,北京,1
2,上海,1

业务理解:客户编码是对客户的一个缩写,区域表示该客户在这个区域有业务,数量表示该客户在该区域的业务点。

需要得到的结果,直接UPDATE表A使之成为如下格式:

客户编码,区域
1,北京
2,北京

结果解释:由于该客户在北京有3个业务点,所以定义为该客户的主要业务范围是北京。
PS,实际可能会出现客户在各个区域的业务点一样,那么就随机选择一个。如:客户编码2
(可以出现2个客户的重点业务区域都在北京,因为北京大啊)
...全文
270 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xdashewan 2015-02-26
  • 打赏
  • 举报
回复
分组排序取第一条,4楼正解
Ekun_sky 2015-02-25
  • 打赏
  • 举报
回复
上海不也有两个吗?你又要如何体现,你要的最终结果是什么呢?
HuoLarry 2015-02-25
  • 打赏
  • 举报
回复
引用 5 楼 zhwlyfx 的回复:
group by 分组,取第一个就行了(top 1 with ties)好像就可以了,但是你说的是随机选一个,这个有什么意义啊。
因为表A中,有些客户是在2个区域都有分销,那么也只能有一个重点市场,我们就会随机选择一个重点市场。比如:表中的客户2
永爱果果 2015-02-25
  • 打赏
  • 举报
回复
group by 分组,取第一个就行了(top 1 with ties)好像就可以了,但是你说的是随机选一个,这个有什么意义啊。
俺是大菠萝 2015-02-25
  • 打赏
  • 举报
回复

with cte as(
select row_number() over(partition by [客户编码] order by [数量] desc) cnt ,* from [表A]
)
select * from cte where cnt=1
HuoLarry 2015-02-25
  • 打赏
  • 举报
回复
引用 2 楼 C_B_Lu 的回复:
没太看懂问题。
哪里不是太明白呢?可能是我站在发问的角度考虑的吧
C_B_Lu 2015-02-25
  • 打赏
  • 举报
回复
没太看懂问题。
HuoLarry 2015-02-25
  • 打赏
  • 举报
回复
没有人能处理吗?想了好久,自己能力有限,希望万能的论坛帮忙看看。

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧