我有一个表,看起来像这样:SQL选择独特的属性中最后一次出现
Date | AttributeId | Score |
4/4/2013 1 0.64
4/6/2013 2 0.35
4/6/2013 1 0.86
4/4/2013 5 0.34
4/4/2013 4 0.23
4/7/2013 3 0.54
4/8/2013 1 0.66
我可以构建在MS SQL查询,使我得到的只是一个特定 属性Id的最后一次出现。如果有帮助
Date | AttributeId | Score |
4/6/2013 2 0.35
4/4/2013 5 0.34
4/4/2013 4 0.23
4/7/2013 3 0.54
4/8/2013 1 0.66
,我知道,只有5 AttributeIDs(1-5),他们不会改变:从上面的例子中,查询将返回此。
目前我查询最近15条记录(并希望那些记录包含我所有的5个属性),然后在应用程序级别提取所有5个属性的最新分数。
有没有更好的解决方案?
编辑:
另外,如果我有Date
,UserId
,AttributeId
和Score
,可我不知组我的结果通过UserId
?
当我尝试你的答案时,我看到我只获得最新的结果,不管哪个UserId
。
我对不起你们,我应该提到UserId
越早
编辑2: 我需要通过属性来获得最新的分数为每一位用户和超过平均的属性他们的得分。 样品看起来是这样的:
Date | UserId | AttributeId | Score |
4/4/2013 1 1 0.64
4/6/2013 1 1 0.35
4/6/2013 2 1 0.86
4/4/2013 1 3 0.34
4/4/2013 2 3 0.23
4/7/2013 2 1 0.54
4/8/2013 1 5 0.69
4/4/2013 2 4 0.27
4/7/2013 2 2 0.54
4/9/2013 1 4 0.66
4/9/2013 2 2 0.58
4/10/2013 1 4 0.66
4/9/2013 1 2 0.33
4/11/2013 2 5 0.10
第一个结果是这样的:
Date | UserId | AttributeId | Score |
4/6/2013 1 1 0.64
4/9/2013 1 2 0.33
4/4/2013 1 3 0.34
4/10/2013 1 4 0.66
4/8/2013 1 5 0.69
4/7/2013 2 1 0.86
4/9/2013 2 2 0.58
4/4/2013 2 3 0.23
4/4/2013 2 4 0.27
4/11/2013 2 5 0.10
而且通过UserId
平均得分在最后的结果是:
UserId | AverageScore |
1 0.532
2 0.408
有多少不同的属性相比,记录你有人数是多少? – Quassnoi 2013-04-30 08:58:34
和多少条记录? – Quassnoi 2013-04-30 09:01:30
对不起,有5个属性和大约1000条记录 – ttkalec 2013-04-30 09:02:30