sql - Presto 中每行的最小值
问题描述
我在 PrestoDB 中有一个包含 4 列类型timestamp tz
的表 - 没有 NULL 值 - 并且无法获得每行的最小值。这似乎违反直觉,因为:
SELECT
(SELECT MIN(Col) FROM (VALUES (1), (2), (3), (4)) AS X(Col)) AS TheMin
FROM mytable
^ 使用假整数将为所有行返回 1
然而在我的桌子上:
SELECT
(SELECT MIN(Col) FROM (VALUES (_col2), (_col3), (_col4), (_col5)) AS X(Col)) AS TheMin
FROM mytable
返回Presto query has failed. type cannot be null
当列中的数据类型全部timestamp tz
且 NULL 值为零时,这怎么可能?
使用列作为找到每行的最小时间戳的解决方法是VALUES
什么?
解决方案
只需使用LEAST()
:
SELECT LEAST(_col2, _col3, _col4), _col5) as TheMin
FROM mytable
推荐阅读
- php - 如何检查和验证是否已达到或已通过 php 预定义日期?
- asp.net-mvc - 我使用 Asp.net 使用日期/时间选择器的哪个功能?
- reactjs - 使用 React 将计算机与商店链接
- angular - 基于环境变量更新 config.json 的预构建脚本
- html - CSS图像无法制作背景
- html - 当它们是弹性项目和网格项目时,如何对内联元素进行不同的处理?
- python - 我看不到子弹图像
- sql - 使用触发器使用相关表中的最小值和最大值更新汇总表中的行
- reactjs - 使用 SpringBoot 运行 ReactJs。重新加载页面错误 WhiteLabel 404
- httpclient - Blazor Webassembly - 调用外部 API