仅在一列上使用 Distinct 的 SQL 查询选择多列(不同的期望结果)

问题描述 投票:0回答:1

与我的标题相同,但想要的结果不同,所以请原谅我的新帖子。

简而言之,我想从表中选择两列,并且只想删除一列中的重复项。

但是由于它是来自多个用户的输入,因此存在拼写错误和名字的不同书写,所以我想忽略不同的名称,但想在电话号码上使用 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
mysql distinct
1个回答
0
投票

以下查询应该会得到您想要的结果。

DBFiddle链接:https://dbfiddle.uk/ctqwb-rC

SELECT
    MIN(buyer_name) AS buyer_name,
    phone_number
FROM
    users
GROUP BY
    phone_number;
© www.soinside.com 2019 - 2024. All rights reserved.