SELECT DATEPART(yy, date1) AS YEAR,
DATEPART(mm, date1) AS MONTH,
DATEPART(dd, date1) AS DAY,
DATEPART(hh, date1) AS hour ,
min(DATEPART(mi, date1)) AS MINUTE,
DATEDIFF(mi, date1, date2) AS aaa
FROM mytb with(nolock)
GROUP BY DATEPART(yy, date1),
DATEPART(mm, date1),
DATEPART(dd, date1),
DATEPART(hh, date1),
DATEPART(mi, date1)
ORDER BY DATEPART(yy, date1) ,
DATEPART(mm, date1),
DATEPART(dd, date1),
DATEPART(hh, date1),
DATEPART(mi, date1)
此Sql无效,我不想将DATEDIFF(mi, date1, date2)
添加到group by
子句中。解决方案是什么?
答案 0 :(得分:0)
找到答案:
我需要使用像min,sum
等聚合函数。
在我的代码中:
select .... max(DATEDIFF(mi, date1, date2))
答案 1 :(得分:0)
您需要按所有非聚合分组才能像这样编写查询。如果任何date1值只有一个可能的date2值,则可以更改
DATEDIFF(mi, date1, date2)
到
min(DATEDIFF(mi, date1, date2))
避免聚合(因为它是聚合)。
您也无法解释为什么您不想按DATEDIFF(mi,date1,date2)分组,所以如果上述内容不足,您可以编辑问题以准确解释您的尝试要做的事情,最好是一些样本数据和所需的结果。