与我的标题相同,但想要的结果不同,所以请原谅我的新帖子。
简而言之,我想从表中选择两列,并且只想删除一列中的重复项。
但是由于它是来自多个用户的输入,因此存在拼写错误和名字的不同书写,所以我想忽略不同的名称,但想在电话号码上使用 DISTINCT,同时还添加国家/地区代码。
我检查并尝试了多个来源。
我尝试将 DISTINCT 仅放在一列上,例如:
SELECT
buyer_name,
DISTINCT(concat('62',phone_number) as phone_number),
--但它是一个错误
然后我的经理建议我应该将 DISTINCT 放在 SELECT 旁边:
SELECT DISTINCT
buyer_name,
concat('62',phone_number) as phone_number,
--但是仍然显示拼写错误的名称,因此,重复的数字仍然会发生。
样本数据:
buyer_name phone_number
Doni 6281234567
sofia 6281234568
Sofia 6281234568
Sophia 6281234568
期望的结果:
buyer_name phone_number
Doni 6281234567
sofia 6281234568
以下查询应该会得到您想要的结果。
DBFiddle链接:https://dbfiddle.uk/ctqwb-rC
SELECT
MIN(buyer_name) AS buyer_name,
phone_number
FROM
users
GROUP BY
phone_number;