使用Max和组通过在DB2

问题描述:

我“AM在DB2执行下面的查询使用Max和组通过在DB2

select SOURCE1 , PLANT1, max(BEGIN_TIMESTAMP) as dat , END_TIMESTAMP, 
     TIMESTAMPDIFF(2,CAST((END_TIMESTAMP - BEGIN_TIMESTAMP) AS CHAR(22))) 
from tab1 
group by dat 

但是我收到此错误:

2点01分01秒[SELECT - 0行(S) ,0.000秒] [错误代码:-206,SQL状态:42703] DB2 SQL错误:SQLCODE = -206,SQLSTATE = 42703,SQLERRMC = DAT,DRIVER = 3.50.152 ... 1个语句被执行,0行/列取时间:0.000/0.000秒[0成功,0警告,1错误]

任何想法请

+0

附注:(部分由于时间戳减法返回的相对距离,)'TIMESTAMPDIFF'返回** *估算*。尤其是,一旦您有一个月(至少1天)或几年(5或6天),价值将会被关闭。 –

您需要在GROUP BY中包含所有非聚合列。目前还不清楚你想要什么,但至少应该解析和运行:

select SOURCE1, PLANT1, max(BEGIN_TIMESTAMP) as dat , END_TIMESTAMP, 
     TIMESTAMPDIFF(2, CAST((END_TIMESTAMP - BEGIN_TIMESTAMP) AS CHAR(22))) 
from tab1 
group by SOURCE1, PLANT1, END_TIMESTAMP; 
+0

它与您的建议谢谢。 但是它没有打开正确的结果 –