大数据小老弟 2020-01-10 11:55 采纳率: 0%
浏览 202
已采纳

sql如何划分分类sql如何划分分类sql如何划分分类sql如何划分分类sql如何划分分类

1.把宽带账号,家庭地址,绑定网关号只要这一列有相同的值就划分为同一个家庭id
2.图片说明
3.由图可知打黄色的是同一个家庭,橘色的是一个家庭
4.前面家庭id,是我手动添加的,需要sql自动sheng'cheng
5.问了很多人这个问题还没解决,可否有大佬

  • 写回答

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 保护模式-系统加载-段寄存器