raw_customers 里同一个人可能被录入多次,姓名的大小写、空格不同,电话的写法也不同。按下面两项规范化之后去重:
- 姓名键
name_key:full_name去掉所有空格(包括中间的空格)后转小写。full_name为 null 时name_key为 null。 - 电话键
phone_digits:phone只保留数字字符(0–9),其余字符全部删掉。删完后为空串,或phone本身为 null 时,phone_digits为 null。不处理国家码:+86 138…规范化后以86开头,与138…不同。
(name_key, phone_digits) 两项都相同的行视为重复,null 与 null 视为相同(例如两行姓名都为 null、电话键也都为 null,算重复)。每组重复只保留 id(按整数比较)最小的一行。
输入
raw_customers(id, full_name, email, phone, birthday, signup, vip, spend),所有列都是字符串。
输出
列为 id(整数)、name_key、phone_digits,每组一行,行顺序不限。