gpt4 book ai didi

mysql - 无法使用 hive 中的电话号码前缀加入 hive 表

转载 作者:行者123 更新时间:2023-11-29 15:41:53 28 4
gpt4 key购买 nike

大家好,我有一个配置单元表,其中包含带有国家/地区前缀的电话号码示例表,如下所示,所有这些都是字符串,它们在我的表中不是整数值

表1:

     number          totalcalls  totalmin
91992834943 6 12
9954345438 4 15
1684999932453 5 3

现在我有表 2:- enter image description here

现在我想使用手机号码前缀加入此表,并且前缀仅以 5 位数字开头

示例输出:

    number          totalcalls  totalmin   country         countrycode
91992834943 6 12 india 91
9954345438 4 15 abkhazia 995
1684999932453 5 3 american samoa 1684

最佳答案

假设前缀明确,您可以这样做:

select t2.*, p.*
from table2 t2 left join
prefixes p
on t2.number = concat(p.country_code, '%');

明确意味着您没有 12123 等值,而 123456789 等电话号码可以与其中任何一个匹配。

如果您可能有歧义,那么您需要最长的前缀:

select tp.*
from (select t2.*, p.*,
row_number() over (partition by t2.number order by length(p2.country_code) desc) as seqnum
from table2 t2 left join
prefixes p
on t2.number = concat(p.country_code, '%')
) tp
where seqnum = 1;

关于mysql - 无法使用 hive 中的电话号码前缀加入 hive 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57550522/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com