- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有以下格式的数据:
输入
**ID col1 Rank**
ID1 C1_abc R1_1
ID1 C1_xce R1_2
ID1 C1_fde R1_3
ID1 C1_sde R1_4
ID2 C1_sds R1_1
ID2 C1_hhh R1_2
ID3 C1_aaa R1_1
ID4 C1_asw R1_1
ID4 C1_eee R1_2
ID4 C1_ttt R1_3
输出:
**ID col1 col2 col3**
1 C1_abc C1_xce C1_fde
2 C1_sds C1_hhh null
3 C1_aaa null null
4 C1_asw C1_eee C1_ttt
我想使用配置单元脚本来实现这一点。我知道有多种实现方式,但由于数据量很大,所以需要最优化的实现方式。
最佳答案
只需使用条件聚合:
select id,
max(case when rank = 1 then col1 end) as col1,
max(case when rank = 2 then col1 end) as col2,
max(case when rank = 3 then col1 end) as col3
from t
where t1.rank in (1, 2, 3)
group by id;
另一种方法是多路连接:
select t1.id, t1.col1, t2.col1 as col2, t3.col1 as col3
from t t1 left join
t t2
on t1.rank = 1 and t2.rank = 2 and t1.id = t2.id left join
t t3
on t1.id = t3.id and t3.rank = 3;
您可能需要同时尝试两者,看看哪个运行得更快。它可能会因您的数据而异。
关于sql - Hive 查询逻辑和优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47114663/
我有 bool 数组 A 和 B,想得到 C。C 就像 A 和 B 的逻辑与,但在匹配索引时有一些回旋余地。也就是说,逻辑 AND 将执行 A[r, c] AND B[r, c],但我想要的是 A[r
我的代码中的一些断言刚开始表现得很奇怪,我想知道以前是否有人遇到过类似情况。一个简短的代码片段,如: #include class A{ protected: bool is
我希望有人可以帮助我解决以下问题,答案是最好的,但如果您能指出我正确的方向,这也会有所帮助。 我是大学最后一年的学生,这些问题来自之前关于形式方法的考试,我可以知道为今年的论文准备的答案。我们的讲师似
假设我需要为某些输入构建一个真值表,它要求我提供逻辑和、算术和和逻辑乘积。它们之间有什么区别? 最佳答案 逻辑和 - 一种计算机加法,当一个或两个输入变量为 1 时,结果为 1;当输入变量均为 0 时
我有一个过滤器,在我的例子中它是SessionFilter,它在 doFilter() 方法中有一些自定义逻辑来验证请求,在验证此请求的过程中我正在执行数据库操作。当我部署在Weblogic环境中时,
这个问题在这里已经有了答案: The output of cout << 1 && 0; (1 个回答) 关闭 3 年前。 我发现 (true && false) 给出 0,而 true && fa
C语言真/假表 我听说过C语言的表true false for and && or ||是一种数学,他们说如果 true+true=true 和 false+true=false 我对此有点困惑,我尝
我在查询中遇到 OR 逻辑问题。我正在尝试对列 (D) 求和,如果: • A 列 = cars/build-price/carselector.html • B 列 = 包含 ateca 或 ibiz
我有一个带有图像组件的表单:Image 我想获得该图像中的真实鼠标位置。 为此,我使用下面的公式,该公式位于函数中 mouseXInImage = MouseXInComponent / Compon
在 Javascript 中,我有一个 if 语句失败,但应该通过,但我不明白为什么。这是 if 的结构。 if(parseInt(obj.OptionCredit) > parseInt(Accou
我正在为应用程序问题编写一些伪代码。我想就我是否走在正确的轨道上,或者我的做法是否完全错误,提出一些建议? 我有 3 个查询条目值: 申请人年龄 配偶年龄 child 数量 对于上述每个值,我的费率表
我的输出是正确的,但我想知道 STUFF 的实际工作原理。 我有一个简单的查询,它返回 @startDate 和 @endDate 之间的总月数。 在 STUFF 的帮助下,我将那几个月存储到 @co
分离 express 应用程序的不同层的最佳方法是什么,这样我的 app.js 文件就不会塞满各种功能?我来自 Java 世界,所以我通常将模型、业务逻辑和 DAO 代码放在不同的层中。 另一个困扰我
我是一名优秀的程序员,十分优秀!