sql - Teradata:如何获得连续最大的日期?

标签 sql aggregate-functions teradata

我正在尝试获取连续的最大日期。 MAXGreatest 两个函数都返回错误:

SEL Max(date1,date2,date3...)
SELECT Failed. 3706:  Syntax error: expected something between a string or a Unicode character literal and ','. 

SEL Greatest(date1,date2,date3...)
SELECT Failed. 9881:  Function 'GREATEST' called with an invalid number or type of parameters 

如何解决这个问题? 谢谢

最佳答案

是的,这很愚蠢,LEASTGREATEST 不适用于日期/时间(在 16.10 中修复)。

作为一种解决方法,您可以将其转换为整数:

SEL cast(GREATEST(cast(date1 as int)
                 ,cast(date2 as int)
                 ,cast(date3 as int)
                 ...) as date)

希望没有 NULL,否则额外的 COALESCE/NULLIF 会变得很难看

关于sql - Teradata:如何获得连续最大的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48783529/

相关文章:

sql - 不等于和大于数字之间的区别

sql - 如何在m列中生成n行的排列或组合?

java - hibernate 如何解析用于初始验证 Teradata 数据库的架构?

sql - 从多列中获取最小值和第二最小值的最简单方法是什么(MIN 函数不起作用)?

mysql - 如何使用percona工具解析和分析二进制日志?

sql - 从 SQL 中的位字段获取 -1

MySQL聚合函数对行与行之间的差异求和

sql - 计数最大值每天并发用户 session 数

sql - 平均 sal 然后按降序排序

hadoop - 从Teradata查询到pyspark