A表字段与B表中的关联,关联条件中一列是随机关联的实现方式

 create table test(
rsrp string,
rsrq string,
tkey string,
distan string
); insert into test values('-90.28','-37','tkey1','');
insert into test values('-92.35','-40','tkey1','');
insert into test values('-94.36','-34','tkey2','');
insert into test values('-93.88','-38','tkey2',''); select * from test;
+------------+------------+------------+--------------+--+
| test.rsrp | test.rsrq | test.tkey | test.distan |
+------------+------------+------------+--------------+--+
| -90.28 | -37 | tkey1 | 10 |
| -92.35 | -40 | tkey1 | 30 |
| -94.36 | -34 | tkey2 | 5 |
| -93.88 | -38 | tkey2 | 19 |
+------------+------------+------------+--------------+--+ create table test_latlng
(
tkey string,
lat string,
lng string
);
insert into test_latlng values('tkey1','lat1','lng1');
insert into test_latlng values('tkey1','lat2','lng2');
insert into test_latlng values('tkey1','lat3','lng3');
insert into test_latlng values('tkey1','lat4','lng4');
insert into test_latlng values('tkey2','lat1','lng1');
insert into test_latlng values('tkey2','lat2','lng2');
insert into test_latlng values('tkey2','lat3','lng3');
insert into test_latlng values('tkey2','lat4','lng4'); 0: jdbc:hive2://10.78.152.62:21066/> select * from test_latlng;
+-------------------+------------------+------------------+--+
| test_latlng.tkey | test_latlng.lat | test_latlng.lng |
+-------------------+------------------+------------------+--+
| tkey1 | lat1 | lng1 |
| tkey1 | lat2 | lng2 |
| tkey1 | lat3 | lng3 |
| tkey1 | lat4 | lng4 |
| tkey2 | lat1 | lng1 |
| tkey2 | lat2 | lng2 |
| tkey2 | lat3 | lng3 |
| tkey2 | lat4 | lng4 |
+-------------------+------------------+------------------+--+ select rsrp,rsrq,t10.tkey,lat,lng,t10.rn
from
(
select rsrp,rsrq,tkey,row_number()over(partition by tkey order by cast(rand() * 100 as int) asc) as rn
from test
group by rsrp,rsrq,tkey
) t10
inner join
(
select lat,lng,tkey,row_number()over(partition by tkey order by cast(rand() * 10000 as int) asc) as rn
from test_latlng
group by lat,lng,tkey
) t11
on t10.tkey=t11.tkey and t10.rn=t11.rn;
+---------+-------+-----------+-------+-------+---------+--+
| rsrp | rsrq | t10.tkey | lat | lng | t10.rn |
+---------+-------+-----------+-------+-------+---------+--+
| -90.28 | -37 | tkey1 | lat2 | lng2 | 1 |
| -92.35 | -40 | tkey1 | lat3 | lng3 | 2 |
| -93.88 | -38 | tkey2 | lat3 | lng3 | 1 |
| -94.36 | -34 | tkey2 | lat2 | lng2 | 2 |
+---------+-------+-----------+-------+-------+---------+--+

TSQL:A表字段与B表中的关联,关联条件中一列是随机关联的实现方式的更多相关文章

  1. oracle删除表字段和oracle表增加字段

    这篇文章主要介绍了oracle表增加字段.删除表字段修改表字段的使用方法,大家参考使用吧   添加字段的语法:alter table tablename add (column datatype [d ...

  2. SQLserver触发器实现A表insert到B表

    CREATE TABLE tab1(tab1_id varchar(11));CREATE TABLE tab2(tab2_id varchar(11)); 现在我们有两张表,要实现在A表里面inse ...

  3. mysql left join中where和on条件的区别

    left join中关于where和on条件的几个知识点: 1.多表left join是会生成一张临时表,并返回给用户 2.where条件是针对最后生成的这张临时表进行过滤,过滤掉不符合where条件 ...

  4. mysql left join中on后加条件判断和where中加条件的区别

    left join中关于where和on条件的几个知识点: .多表left join是会生成一张临时表,并返回给用户 .where条件是针对最后生成的这张临时表进行过滤,过滤掉不符合where条件的记 ...

  5. Mybatis中实体类中的字段跟对应表的字段不一致时解决办法

    解决字段名与实体类属性名不相同的冲突 实体类字段: public class Order { private int id; private String orderNo; private float ...

  6. MySQL中 如何查询表名中包含某字段的表 ,查询MySql数据库架构信息:数据库,表,表字段

    --查询tablename 数据库中 以"_copy" 结尾的表 select table_name from information_schema.tables where ta ...

  7. 在向"带有自增字段的数据库表"中插入数据时,自定义"该自增字段"的数据

    在设计数据库表的时候,经常会使用自增主键或其他自增字段.比如: DB_UserGroups表中GroupID为该表主键,并为自增字段. 但在将某字段设置自增后,想在插入数据时,人为指定自增字段的数据内 ...

  8. Oracle中的自连接(self join)-当表中的某一个字段与这个表中另外字段的相关时,我们可能用到自连接。

    http://blog.163.com/wkyuyang_001/blog/static/10802122820091751049479/ 当表中的某一个字段与这个表中另外字段的相关时,我们可能用到自 ...

  9. laravel 字段映射问题,表单中提交字段与数据表中字段不一致

    在遇到提交表单时,表单中的name属性与数据表中的字段不一致,报错, 解决方法: 参考1:提交表单的时候,表单的name属性和数据表字段名称是一样的,这样有什么不妥么? 你数据库的信息给前端透露得越多 ...

随机推荐

  1. fail2ban防止SSH暴力破解

    [root@kazihuo /srv]# wget https://github.com/fail2ban/fail2ban/archive/0.8.14.tar.gz [root@kazihuo / ...

  2. Java并发系列[9]----ConcurrentHashMap源码分析

    我们知道哈希表是一种非常高效的数据结构,设计优良的哈希函数可以使其上的增删改查操作达到O(1)级别.Java为我们提供了一个现成的哈希结构,那就是HashMap类,在前面的文章中我曾经介绍过HashM ...

  3. POJ1331 Multiply(strtol函数练习)

    题目链接:http://poj.org/problem?id=1331 主要介绍strtol函数: long int strtol(const char *nptr,char **endptr,int ...

  4. Hook 无侵入式埋点(页面统计)

    一.技术原理 Method-Swizzling 黑魔法 方法交换(不懂的可以查) 二.页面统计 某盟页面统计SDK需要开发者在APP基类里实现ViewDidAppear和viewDidDisappea ...

  5. 爬虫实践---悦音台mv排行榜与简单反爬虫技术应用

    由于要抓取的是悦音台mv的排行榜,这个排行榜是实时更新的,如果要求不停地抓取,这将有可能导致悦音台官方采用反爬虫的技术将ip给封掉.所以这里要应用一些反爬虫相关知识. 目标网址:http://vcha ...

  6. C#/AutoCAD 2018/ObjectArx/二次开发添加图形对象步骤和添加直线的例子(三)

    1.创建一个图形对象的步骤如下(1)得到创建对象的图形数据库:(2)在内存中创建实体类的一个对象:(3)定义一个指向当前数据库的事务处理:(4)打开图形数据库的块表:(5)打开一个存储实体的块表记录( ...

  7. X-pack安装

    1. Install X-Pack into Elasticsearch   docker exec -it anyrobot-store /bin/bash   bin/elasticsearch- ...

  8. 敏捷冲刺报告--Day5

    敏捷冲刺报告--Day5 情况简介 GUI框架重写, 添加功能 任务进度 赵坤: 后端爬虫bug修复 李世钰: GUI编写 黄亦薇:更新sprint backlog.编写每日报告 王成科:召集小组成员 ...

  9. C语言——第十四、十五周作业

    题目 题目一:交换最小值和最大值 1.实验代码 #include<stdio.h> int main() { ; int i , n; int a[N]; int x , y; scanf ...

  10. 开始 Python 之旅

    开始 Python 之旅 课程来源 本课程基于 Python for you and me 教程翻译制作,其中参考了 Python tutorial 和 The Python Standard Lib ...