mysql - 如何从 X 列中选择唯一列但从 SQL 结果中显示 X + Y 列?

标签 mysql sql impala

这张表在我们的 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;

如果这太难或太复杂,也许有人可以告诉我一个命令,该命令选择不同的时间和服务器,但打印它为不同的时间和服务器对找到的第一个数据值。

最佳答案

要获取唯一时间和服务器值以及最大数据值,您可以使用带有 GROUP BY 的查询,如下所示:

SELECT TIME, SERVER, MAX(DATA)
  FROM TABLE
  GROUP BY TIME, SERVER
  ORDER BY TIME, SERVER;

希望这对您有所帮助。

分享和享受。

关于mysql - 如何从 X 列中选择唯一列但从 SQL 结果中显示 X + Y 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28226813/

相关文章:

mysql - 恢复已删除的mysql数据

sql - 如何在 SQL 中为球队/对手数据创建 game_id 变量

sql - Impala double值未正确加载

hadoop - Hive Metastore到SYS

java - Impala + 拼花文件

unix - mysqldump 丢失表数据

javascript - 从 HTML 表到 mysql 数据库

mysql - 谁能帮我修复 SQL 查询吗?

mysql - 需要根据另一个表的结果更新表

SQL Update确实很慢(大约20-50秒),Select只需要不到1秒