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

sdd*_*dds 3 sql date aggregate-functions ansi-sql

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

Mat*_*hew 5

在MS SQL Server中您无法SUMdatetime类型上调用操作符,也无法调用AVG操作符.

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

这也是您可以从中类型的有效引用调用SUM操作.

编辑:为了回应您的评论,您可以使用像sqlfiddle这样的网站来测试各种实现

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

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