gpt4 book ai didi

sql - Impala 中的日期/字符串比较不起作用(总是返回 false)

转载 作者:可可西里 更新时间:2023-11-01 15:49:38 24 4
gpt4 key购买 nike

所以我目前正在编写一个 impala 查询,它基本上根据多个列对数据进行分组,并根据最近的列获取其余列的值。但是,由于我想根据日期对数据进行分组,因此在比较数据时查询总是返回 false。

我的代码如下。如果我不包括 tstamp 比较,代码工作正常,但无法根据日期对其进行分组。

`select * from mytab as x 
where x.tstamp =
(select max(y.tstamp) from mytab as y
where x.id_ = y.id_ and x.id = y.id and
to_date(x.tstamp) = to_date(y.tstamp));
`

数据如下。下面的数据只是真实数据的一个片段,它包含了很多天的数据,并且有更多的列。

    tstamp                   id         id_
2018-06-07 06:39:26.470 10002071 5438221
2018-06-07 06:39:26.533 10002071 5438221
2018-06-07 06:39:35.223 10002071 5438221
2018-06-07 06:39:35.343 10002071 5438222
2018-06-07 06:39:39.087 10002071 5438222
2018-06-07 06:39:43.390 10002071 5438222
2018-06-07 06:39:43.417 10002071 6268470
2018-06-07 06:39:44.700 10002071 6268470
2018-06-07 06:39:48.573 10002071 6268470

最佳答案

使用窗口函数:

select t.*
from (select t.*,
max(tstamp) over (partition by id_, id, to_date(tstamp) as max_tstamp
from t
) t
where tstamp = max_tstamp;

也就是说,您的版本应该可以工作,但这个更简单。

关于sql - Impala 中的日期/字符串比较不起作用(总是返回 false),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51188758/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com