SQL GROUP BY子句,使用AVG在DATESPAN计算中获得浮点数2精度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL GROUP BY子句,使用AVG在DATESPAN计算中获得浮点数2精度相关的知识,希望对你有一定的参考价值。

我目前正在尝试找到一种最佳方式来获取一列的百分比,该百分比是两个日期之间的天数的计算。然后,我想找到平均值。

SELECT 
    [Filed1],
    [Field2],
    COUNT(items) AS [Total Items],
    CAST(AVG(
            (DATEDIFF(SECOND,
                    [DateStart],
                    [DateEnd])
            )/36000) 
        )AS DECIMAL(10,2)) [Avg Days]
        FROM [MY DB]

我似乎无法得到准确的3.5天或7.1天,它只返回带有5.00、6.00等两个小数的整数。如何处理日期跨度计算,且平均精度为十进制?

答案

您正面临整数除法。

考虑:

CAST(AVG(
        (1.0 * DATEDIFF(SECOND,
                [DateStart],
                [DateEnd])
        )/36000) 
    )AS DECIMAL(10,2)) [Avg Days]

以上是关于SQL GROUP BY子句,使用AVG在DATESPAN计算中获得浮点数2精度的主要内容,如果未能解决你的问题,请参考以下文章

sql计算平均值与group by?

没有聚合功能的 GROUP BY 子句有啥原因吗?

having是否依赖于group by

oracle数据库GROUP BY 子句

SQL Server报错:选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中

GROUP BY子句