1.把宽带账号,家庭地址,绑定网关号只要这一列有相同的值就划分为同一个家庭id
2.
3.由图可知打黄色的是同一个家庭,橘色的是一个家庭
4.前面家庭id,是我手动添加的,需要sql自动sheng'cheng
5.问了很多人这个问题还没解决,可否有大佬
sql如何划分分类sql如何划分分类sql如何划分分类sql如何划分分类sql如何划分分类
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- HyperMa0 2020-01-10 15:49关注
大概思路:
前提条件:家庭ID一列全为空
因黄色涵盖所有情况,所以为例,先后group by
第一步:
select 宽带账号,COUNT(*) as 该宽带账号数量 from [表15] group by 宽带账号 having COUNT(*)>1
查出的是重复的宽带账号以及数量,循环,将这些宽带账号分配家庭ID,也就是图中5的情况第二步:
select 家庭地址,COUNT(*) as 该家庭地址数量 from [表15] group by 家庭地址 having COUNT(*)>1
查出的是重复的家庭地址以及数量,循环,将这些家庭地址分配家庭ID,这里需要兼顾第一步,需要增加判断,如果当前重复的这组家庭地址,有一个有家庭ID了,这一组不需要生成新的家庭ID,直接分配已有的那个家庭ID第三步:
思路跟第二步差不多,多一个判断最后,剩下的没有家庭ID的,应该都是独立的家庭ID,自增长分配即可
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器