我有这样的桌子
- seek_video 2014-08-30 11:26:06 NULL 9 0
- seek_video 2014-08-30 11:26:13 NULL 0 5
- seek_video 2014-08-30 11:26:13 NULL 5.07195 0
- seek_video 2014-08-31 11:05:24 NULL 330.94054 312
- seek_video 2014-08-31 11:38:30 NULL 220 229
- seek_video 2014-08-31 11:51:15 NULL 323.833366 345
- seek_video 2014-08-31 11:51:16 NULL 346.223424 367
- seek_video 2014-08-31 11:51:16 NULL 367.879296 380
- seek_video 2014-08-31 11:51:17 NULL 381.625192 397
- seek_video 2014-08-31 11:51:19 NULL 309.719715 323
- seek_video 2014-08-31 11:34:33 NULL 440.885152 309
- seek_video 2014-08-31 11:46:04 NULL 255.366326 268
- seek_video 2014-08-31 11:46:05 NULL 268 290
- seek_video 2014-08-31 11:46:07 NULL 290 309
- seek_video 2014-08-31 11:44:34 NULL 231.77611 250
- seek_video 2014-08-31 11:34:58 NULL 272 220
- seek_video 2014-08-31 11:34:55 NULL 299 272
- seek_video 2014-08-31 11:34:53 NULL 309 299
- seek_video 2014-08-31 12:16:29 NULL 501.779488 489
- seek_video 2014-08-31 12:26:32 NULL 551.362232 578
- seek_video 2014-08-31 12:26:35 NULL 580.790634 625
- seek_video 2014-08-31 12:26:37 NULL 627.838707 663
- seek_video 2014-08-31 12:26:38 NULL 663.573627 649
- seek_video 2014-08-31 12:26:39 NULL 650.194875 637
- seek_video 2014-08-31 12:26:42 NULL 639.451178 621
- seek_video 2014-08-31 07:58:51 NULL 9.075397 9
- seek_video 2014-08-31 07:58:52 NULL 9 4
- seek_video 2014-08-31 08:13:59 NULL 19.630148 27
我的查询
select max(old_time),max(new_time) from (
select event_type,time,currenttime,old_time,new_time
from vi_log_table
where *************) t1 ;
最后两列的最大值返回
9.075397 9
而不是650.19 663
我对这种不可预测的行为感到很困惑。 hive 在处理浮点值时是否存在一些问题按时间顺序对值进行排序后进行编辑
最佳答案
我找到了。
在HIVEQL中,最后两行的数据类型只是字符串
使用cast(new_time as float)
会给出正确的顺序
关于hadoop - hiveql中max,min的不稳定行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30575062/