我偶然发现了一个关于哪些聚合函数适用于DATE类型列的问题(在测试中)。所以,据我所知,COUNT只计算行数,MIN和MAX返回最早/最晚的日期。但是,我对SUM和AVG功能有点困惑。他们只是将DATE值转换为整数并计算这些整数的总和/平均值吗?或者我错在这里?无论如何,这种行为在SQL的所有实现中是否一致? 提前谢谢。
答案 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
的后端存储未标准化,我认为应该不依赖于任何数据库返回SUM
或AVG
结果以可预测的方式......最好不要这样做......