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

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

大概思路:

前提条件:家庭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,自增长分配即可