【问题标题】:average no of games per player in last week上周每位玩家的平均游戏数
【发布时间】:2012-09-17 07:59:17
【问题描述】:

如何计算从给定日期开始过去一周每位玩家的平均游戏数。 例如我的桌子包括

DateId       UserId        GameId
30-aug-2012  3             89
31-aug-2012  2             32
1-sep-2012   1             53
1-sep-2012   2             56
1-sep-2012   1             32
7-sep-2012   3             56

因此,结果应该是 - 一周(2012 年 9 月 1 日至 2012 年 9 月 7 日)的(总游戏数)/(总玩家数) 即 3/3 = 1

【问题讨论】:

    标签: sql sql-server group-by average


    【解决方案1】:

    试试这个:

    select COUNT (distinct GameId)/COUNT(distinct UserId)
    from   your_table
    where  DateId>DATEADD(DD,-7,'7-sep-2012')
    

    【讨论】:

    • 如果我必须为每个日期都这样做...例如 DateId x,它应该在 x-7 和 x 之间...对于 DateId x-1,它应该在(x-1)-7 和 (x-1)。我必须从给定的 DateId 对过去一周的数据进行分组。
    • @user1664644:对不起,我没听懂你……你的意思是像一个滚动的 7 天窗口?
    • 是的...我需要从给定的 DateId 考虑过去一周。基本上是滚动的一周。
    • @user1664644 : BETWEEN (x-1)-7 AND (x-1) 涵盖 8 天,而不是 7 天。此外,您是否请求提供参数的能力,从而能够根据不同的参数查询不同的星期? (请具体,并在您的问题中包含所有相关信息 - 不是 cmets。)
    • @user1664644:那你有没有试过我对你上一个问题的回答?那里有什么问题?几乎一样的东西..那里 //stackoverflow.com/questions/12401869/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多