sql - 我很难编写 HiveQL Join
问题描述
我很确定这个问题已经被问到,但无法让我的搜索查询返回答案。我有两张桌子
**Table Online**
Col1 Col2 Score |
a b 1 |
a c 2 |
a d 3 |
f e 4 |
**Table Offline**
Col1 Col2 Score |
a m 10 |
a c 20 |
a d 30 |
t k 40 |
**Table Output**
Col1 Col2 Online.Score Offline.Score |
a c 2 20 |
a d 3 30 |
a b 1 |
a m 10 |
解决方案
您可以使用以下命令执行此操作full join
:
select coalesce(onl.col1, ofl.col1) as col1,
coalesce(onl.col2, ofl.col2) as col2,
onl.score, ofl.score
from (select onl.*
from online onl
where onl.col1 = 'a'
) onl full join
(select ofl.*
from offline ofl
where ofl.col1 = 'a'
) ofl
on onl.col1 = ofl.col1 and onl.col2 = ofl.col2;
过滤很棘手full join
,这就是使用子查询的原因。
推荐阅读
- blazor - 出现错误 发生未处理的异常。有关详细信息,请参阅浏览器开发工具。重新加载
- django - Django App Served in EBS (Elastic Beanstalk Service) using Traefik and Docker error: 502 Bad Gateway
- c# - Task.WhenAll ContinueWith 死锁
- c# - 在 C#/MySQL 中将变量值插入变量列
- odbc - 如何从 SQL Server 对象的 ODBC 17 驱动程序中读取 U/P
- javascript - 如何在条件快递js节点js中创建变量
- angular - 解决 Angular 9 中的 HttpClient 错误
- google-cloud-firestore - Firestore 和 VueJS:如何更新 firestore 集合中嵌套对象中的字段?
- rust - IntoIterator 返回代理类型,它将在 Rust 中的迭代期间返回索引
- mysql - 使用 mysql information_schema 表获取列的最大值和最小值