这是我的第一篇文章,因此请轻松一下:-)。我试图得到一个SQL查询,它会给我每个用户每天的平均分数。数据正在用于绘制图表,因此我需要为每个用户提供一致的时间表。我遇到的问题是某些用户可能没有特定日期的任何数据,因此我需要这样才能返回0。以下是源数据和期望结果的示例(请注意,user02没有09/07/2016):SQL Server计算每个用户每天的平均分数,但某些用户在某些天没有记录分数
RAW data Desired results
USER DATE SCORE USER DATE AVERAGE_SCORE
user01 08/07/2016 0.66667 user01 08/07/2016 0.16667
user01 08/07/2016 0.33333 user01 09/07/2016 0.66667
user01 08/07/2016 -0.5 user01 10/07/2016 0.72222
user01 09/07/2016 0.33333 user02 08/07/2016 0.10317
user01 09/07/2016 0.66667 user02 09/07/2016 0.00000 <--return 0
user01 09/07/2016 1 user02 10/07/2016 0.16270
user01 10/07/2016 0.66667
user01 10/07/2016 1
user01 10/07/2016 0.5
user02 08/07/2016 0.16667
user02 08/07/2016 -0.14286
user02 08/07/2016 0.28571
user02 10/07/2016 0.66667
user02 10/07/2016 0.57143
user02 10/07/2016 -0.75
在生产数据库中,表中可能有几十个用户,所以我需要考虑到这一点。我不确定解决这个问题的最佳方式,我之前已经完成了一些简单的SQL数据库工作,但是我正在努力解决这个问题。最受赞赏的任何帮助或建议。
提示:'GROUP BY'。 –
您可以使用一个计数表和日期添加函数来生成给定时间段内的所有日期,然后左键连接到您的查询 – ZLK
我假设他有他需要的所有数据,最大分钟发布日期给出了一些天除以总和 - 否则他可以使用计算日期和查找自MIN以来的日期(日期) - 如果最近的日期没有数据 – Cato