首页 > SQL筛选数据问题

SQL筛选数据问题

有下面这样一个表

姓名    业务号       号码    地址    类型    标识
赵一    NULL      123456    地址1   0       NULL
李二    2         123456    地址1   1       A
张叁    NULL      123456    地址1   1       NULL
李肆    43        123456    地址2   0       B
王五    NULL      123456    地址2   0       NULL
刘六    NULL      123456    地址2   0       NULL
康七    NULL      123456    地址2   0       NULL
杨八    NULL      123456    地址2   1       NULL

需要实现下面的要求


result1

姓名    业务号       号码    地址    类型    标识
赵一      NULL    123456    地址1   0       NULL
李二      2       123456    地址1   1       A
张叁      NULL    123456    地址1   1       NULL

result2

李肆    43        123456    地址2   0       B
王五    43        123456    地址2   0       B
刘六    43        123456    地址2   0       B
康七    43        123456    地址2   0       B
杨八    NULL      123456    地址2   1       NULL

能不能只用SQL实现这样的需求(如果不能,用什么辅助比较好),什么样的算法效率高(大量数据)?


一条SQL好像无法实现,需要分步处理
1、对【地址】分组
对 地址 字段用 group by 地址
然后having 中 count(地址) > 1
接着where 排除掉 业务号 is null 的记录

2、对第一步取出的数据,输出到一个缓存表,主键为 地址,字段2为 业务号
然后用【地址】字段对主表与缓存表建立关联,更新主表的 业务号 is null的字段

【热门文章】
【热门文章】