【问题标题】:How to count the number of active days in a dataset with SQL Server 2008如何使用 SQL Server 2008 计算数据集中的活动天数
【发布时间】:2014-09-28 23:53:50
【问题描述】:

SQL Server 2008,通过 aspx 网页呈现为 html。

我想要达到的目标是获得一个平均每天的数字,以考虑缺失的天数。为此,我需要计算表格中的活跃天数。

例子:

Date       | Amount    
---------------------
2014-08-16 | 234.56    
2014-08-16 | 258.30  
2014-08-18 | 25.84  
2014-08-19 | 259.21

手数总和 (777.961) 除以活跃天数 (3) = 259.30

所以它需要去“计算返回范围内不同日期的数量”

有没有一种简洁的方法可以做到这一点?

【问题讨论】:

  • 您的预期输出到底是什么?请根据该数据指明您想要的输出行。还有什么决定了一天是否“活跃”?
  • 我想要上面表示为 259.30 的单个数字:活跃天数中的每天平均值。因此,如果星期一、星期二和星期三是交易日,并且在这些日子加载了发票,那么平均值将是 sum(amount) / distinct SUM(date)。但是如果星期四是假期,然后星期五又是交易,我想要新的 SUM(amount) / [只有数据中表示的天数]

标签: sql sql-server-2008 date


【解决方案1】:

如果您只想要那一行输出,那么这应该可以:

select sum(amount) / count(distinct date) as your_average
from your_table

小提琴: http://sqlfiddle.com/#!2/7ffd1/1/0

【讨论】:

    【解决方案2】:

    我不知道这对你有帮助,使用 Group By、Avg、count 功能怎么样。

    SELECT Date, AVG(Amount) AS 'AmountAverage', COUNT(*) AS 'NumberOfActiveDays'
    FROM YourTable WITH(NOLOCK)
    GROUP BY Date
    

    关于AVG功能,看这里:Link

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 2013-01-04
    • 2013-06-16
    • 1970-01-01
    • 1970-01-01
    • 2019-07-05
    相关资源
    最近更新 更多