HIIVE SQL:如何比较多个列并从其中一个列中选择一个值

时间:2016-01-18 02:09:07

标签: sql hive min

简而言之,我想在多列中选择最小的日期。

wb.setPage(htmlcode,null);

从上面我想选择最小的日期并把它放在colunn E中。 我该怎么做 - 我将在800M recs上部署它,所以它会很好用一个优雅的解决方案:) 感谢..

拉​​塞

1 个答案:

答案 0 :(得分:0)

您想要的功能是least()。问题是NULL值。这可能就足够了:

select least(coalesce(A, '2099-12-31'),
             coalesce(B, '2099-12-31'),
             coalesce(C, '2099-12-31'),
             coalesce(D, '2099-12-31')
            )

处理NULL的所有值:

select (case when coalesce(A, B, C, D) is not null
             then least(coalesce(A, '2099-12-31'),
                        coalesce(B, '2099-12-31'),
                        coalesce(C, '2099-12-31'),
                        coalesce(D, '2099-12-31')
                       )
        end)
相关问题