SQL:具有DATE类型列的聚合函数

时间:2012-06-14 19:42:00

标签: sql date aggregate-functions ansi-sql

我偶然发现了一个关于哪些聚合函数适用于DATE类型列的问题(在测试中)。所以,据我所知,COUNT只计算行数,MIN和MAX返回最早/最晚的日期。但是,我对SUM和AVG功能有点困惑。他们只是将DATE值转换为整数并计算这些整数的总和/平均值吗?或者我错在这里?无论如何,这种行为在SQL的所有实现中是否一致? 提前谢谢。

1 个答案:

答案 0 :(得分:5)

在MS SQL Server中您无法在SUM类型上调用datetime运算符,也无法调用AVG运算符。

MSDN在此处列出SUM运算符的返回类型:
http://msdn.microsoft.com/en-us/library/ms187810.aspx

它也是您可以调用 SUM运算符的类型的有效参考。

编辑:在回复您的评论时,您可以使用像sqlfiddle这样的网站来测试各种实施方案

http://www.sqlfiddle.com/#!3/22cee/1

考虑到datetime的后端存储未标准化,我认为应该依赖于任何数据库返回SUMAVG结果以可预测的方式......最好不要这样做......