【问题标题】:Average completed events per day (in Month)每天平均完成的事件(月)
【发布时间】:2017-03-12 15:58:15
【问题描述】:

使用 SQL,我如何计算每月平均每天完成的事件数?

样本数据:

ID  Fullname    Events  Status  DateContacted   UserID
1   Jack    Phone Call  Completed   2017-03-10 00:00:00.000 14587bg   
2   Dawn    Meeting Completed   2017-03-08 00:00:00.000 15879uj   
3   Helen   Phone Call  NULL    2017-02-02 00:00:00.000 89751po   
4   Sam Appointment Completed   2017-02-10 00:00:00.000 35784ly   
5   David   Skype   Completed   2017-01-01 00:00:00.000 3337jy    
6   Jack    Skype   Completed   2017-01-14 00:00:00.000 14587bg 

谢谢

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    计算完成的事件数并计算该月的天数。让我假设你不关心没有事件的日子。

    select year(datecontacted) as yyyy, month(datecontacted) as mm,
           (sum(case when status = 'Completed' then 1.0 else 0 end) / 
            count(distinct cast(datecontact as date))
           ) as avg_completed_per_day
    from sample s
    group by year(datecontacted), month(datecontacted)
    order by yyyy, mm;
    

    【讨论】:

    • 嗨,戈登,哇!那很快!它看起来像我想要的,我只是检查它,并进行微调。我会回复你的
    • 嗨,戈登,似乎是在计算而不是给出平均值。我在一天内为 Laura 的名字添加了总共 7 个完成的事件,您的查询平均给出 7 个,我预计它会更少。 ID 全名 CallType Status DateContacted UserID 2 Laura Meeting Completed 2017-03-08 00:00:00.000 15879uj
    • @Peppe 。 . .我看不出“劳拉”与这个问题有什么关系。如果您有不同的问题,您应该提出另一个问题,并附上样本数据和期望的结果。
    • 嗨,戈登,是的,劳拉这个名字不在那个数据集中,很抱歉造成混淆。简单地说,我的意思是您的查询在计算已完成事件的数量方面做得很好,但它并没有给出已完成事件的平均值。你介意检查你的查询。这与我最初提出的问题相同。感谢您的支持,不胜感激!
    • 嗨,戈登。我仔细检查了数据,并确认您给出了正确的结果。谢谢!你能告诉我我如何在季度中的每一天以及一年中的每一天做到这一点吗?感谢您的支持!
    猜你喜欢
    • 1970-01-01
    • 2018-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-22
    相关资源
    最近更新 更多