【发布时间】:2015-01-29 23:44:46
【问题描述】:
该表在我们的 impala 集群上,尽管 impala shell 看起来与 SQL 非常相似。除了执行极其简单的查询之外,我几乎没有 SQL 或 Impala 经验,所以这个问题可能远远超出我的经验和薪酬等级。
我需要使用 impala 从我们的数据库中获取一些数据。表中还有其他列,但我的命令抓取了我感兴趣的这 3 列。数据/结果可能如下所示:
time | server | data
0 | A | 500
0 | B | 200
0 | C | 300
1 | A | 100
1 | A | 400
1 | B | 200
1 | C | 300
2 | A | 900
2 | B | 800
2 | C | 700
2 | C | 600
理想情况下,数据应该看起来像时间 0,其中每个服务器只针对每个时间值显示一次。但是,有一个错误,如图所示,服务器可以多次显示时间值。如上例所示,每个时间值显示多次的服务器也不是同一台服务器。
无论如何,我应该阅读/查找什么 impala-shell/SQL 命令来告诉它选择不同的时间和服务器,但选择两个数据值中的较大者?我不知道如何继续过去:
select distinct time, server from table;
如果这太难或太复杂,也许有人可以指点我一个命令,该命令选择不同的时间和服务器,但打印它为不同的时间和服务器对找到的数据的第一个值。
【问题讨论】:
-
如果有多个
time + server对,data必须从哪一行返回? -
@zerkms,感谢您的关注和帮助。如果可能的话,我想打印出更大的值,比如服务器 A 的时间 = 1,我想打印出 400。
-
如果太复杂,我就列出我们遇到的时间/服务器对的第一个值。