我来自不同传感器单元的数据与hadoop中的unix\u time stam相混合。使用first和last语句很容易获得sql中每天的第一个和最后一个值,如下所示。在这里我得到了一天开始和结束时的温度。
SELECT unit, FIRST(Temp) as Start_Day_Value, LAST(Temp) as End_Day_Value
FROM Sensor_Data.Table
WHERE cast(ts/1000 as TIMESTAMP) BETWEEN "2021-01-05 00:00:00" AND "2021-01-05 23:59:59"
GROUP BY unit
ORDER BY unit;
在impala中是否有任何等效的命令,以便我可以像在sql中一样获得每列的第一个和最后一个值。
2条答案
按热度按时间j2qf4p5b1#
标准sql具有
FIRST_VALUE()
窗口函数,但不是聚合的等价函数。所以,在impala中或者任何其他数据库中,有一种方法是:注意,我还简化了日期比较。
注:我不确定
cast()
工作(我希望代码使用from_timestamp()
). 但这不是你要问的。编辑:
在 Impala ,你可以使用
GROUP BY
:tzdcorbm2#
我用以下方法解决了这个问题: