SQL进阶技巧:非等值连接--单向近距离匹配

目录

[0 场景描述](#0 场景描述)

[1 数据准备](#1 数据准备)

[2 问题分析](#2 问题分析)

​编辑

​编辑

[3 小结](#3 小结)

数字化建设通关指南


0 场景描述

表 t_1 和表 t_2 通过 a 和 b 关联时,有相等的取相等的值匹配,不相等时每一 个 a 的值在 b 中找差值最小的来匹。

表 t_1:a 中无重复值

表 t_1:a 中无重复值

a 1 2 4 5 8 10

表 t_2:b 中无重复值 b 2 3 7 11 13

问题:单向最近匹配

输出结果如下所示:

注意:b 的值可能会被丢弃

a b

1 2

2 2

4 3

5 3

5 7

8 7

10 11

1 数据准备

sql 复制代码
create table t_1 as
    (select stack(
                    6,
                    1,
                    2,
                    4,
                    5,
                    8,
                    10
            ) as (a));

create table t_2 as
    (select stack(
                    5,
                    2,
                    3,
                    7,
                    11,
                    13
            ) as (b));

2 问题分析

步骤1:自关联,生成全量的数据集。并按照关联的结果集,按照abs(a-b)差值排序。注意差值有可能重复,因而采用dense_rank()

sql 复制代码
select a
     , b
     , abs(a-b) diff
     , dense_rank()  over (partition by a order by abs(a-b) )
from t_1,
     t_2

步骤2:过滤出rn=1 的值则为最终结果

sql 复制代码
select a, b
from (select a
           , b
           , abs(a - b)                                              diff
           , dense_rank() over (partition by a order by abs(a - b) ) rn
      from t_1,
           t_2) t
where rn = 1

3 小结

本文分析了一种非等值连接--单向近距离匹配的方法及技巧、

数字化建设通关指南

专栏原价99,现在活动价39.9,按照阶梯式增长,直到恢复原价

专栏优势:

(1)一次收费持续更新。

(2)实战中总结的SQL技巧,帮助SQLBOY 在SQL语言上有质的飞越,无论你应对业务难题及面试都会游刃有余【全网唯一讲SQL实战技巧,方法独特】

SQL很简单,可你却写不好?每天一点点,收获不止一点点-CSDN博客

(3)实战中数仓建模技巧总结,让你认识不一样的数仓。【数据建模+业务建模,不一样的认知体系】(如果只懂数据建模而不懂业务建模,数仓体系认知是不全面的)

(4)数字化建设当中遇到难题解决思路及问题思考。

我的专栏具体链接如下:

数字化建设通关指南_莫叫石榴姐的博客-CSDN博客

相关推荐
逸Y 仙X13 小时前
文章三十四:ElasticSearch Script脚本实战
大数据·elasticsearch·搜索引擎·全文检索
倔强的石头10613 小时前
【Linux 指南】文件系统系列(三):Ext系统核心实现 —— 从块组到 inode 与数据块映射全解析
大数据·linux·运维
六月雨滴13 小时前
Oracle 数据库 RMAN 架构与核心概念
数据库·oracle·dba
前端若水13 小时前
处理智能体的不确定性:重试、回退与人工介入
大数据·人工智能·windows·开源协议
企服AI产品测评局13 小时前
2026实测:能耗管控场景下的AI工具数据分析能力横向对比,实在Agent如何通过ISSUT打破数据孤岛?
人工智能·ai·chatgpt·数据挖掘·数据分析
小船跨境13 小时前
2026 NLP数据采集指南:代理IP如何帮助提升大规模采集效率
大数据·网络·人工智能
zhojiew13 小时前
在AWS中国区启动Trino使用Iceberg REST Endpoint查询S3 Tables的实践
大数据·trino·s3table
团象科技13 小时前
跨境业务落地频繁遇阻,Claude登AWS平台如何补齐出海短板
大数据·人工智能
70asunflower13 小时前
相对路径的作用与价值
人工智能·数据挖掘·数据分析
青岛前景互联信息技术有限公司13 小时前
视频AI与智能预警:如何提前发现园区安全隐患?
大数据·人工智能·视频