Presto 中每行的最小值

the*_*ide 2 sql presto

timestamp tz在 PrestoDB 中有一个包含 4 列类型的表 - 没有 NULL 值 - 并且无法获得每行的最小值。这似乎违反直觉,因为:

SELECT
(SELECT MIN(Col) FROM (VALUES (1), (2), (3), (4)) AS X(Col)) AS TheMin
FROM mytable
Run Code Online (Sandbox Code Playgroud)

^ 使用假整数将为所有行返回 1

然而在我的桌子上:

在此处输入图片说明

SELECT
(SELECT MIN(Col) FROM (VALUES (_col2), (_col3), (_col4), (_col5)) AS X(Col)) AS TheMin
FROM mytable
Run Code Online (Sandbox Code Playgroud)

返回 Presto query has failed. type cannot be null

当列中的数据类型全部timestamp tz并且有零个 NULL 值时,这怎么可能?

这里使用列作为查找每行的最小时间戳的解决方法是VALUES什么?

Gor*_*off 5

只需使用LEAST()

SELECT LEAST(_col2, _col3, _col4), _col5) as TheMin
FROM mytable
Run Code Online (Sandbox Code Playgroud)