您的位置:首页 > 数据库

SQL查询_____查询最近30天内正确率大于60%的阅读记录,每天只显示符合条件的速度最高的那个

2010-11-10 11:05 603 查看
最近在做一个小项目时,有一这样的需求:查询最近30天内正确率大于60%的阅读记录, 每天只显示符合条件的速度最高的那个.

现有数据库表字段:



写成存储过程如下:

create PROCEDURE usp_getDataByRange
@range int
AS
select * from
(SELECT id, RD_User, RD_OrginalArticle, RD_RightWords, RD_DictationArticle,
RD_LastReadIndex, RD_Speed, RD_ReadTime, RD_DictationTime, RD_SumTime,
RD_PrecisionRate, CONVERT(VARCHAR(50) ,RD_TestTime, 101) as Time,
case
when RD_PrecisionRate=max(RD_PrecisionRate) over(partition BY CONVERT(VARCHAR(50) ,RD_TestTime, 101))

then 'zuigao'
end as ZUI
FROM OR_ReadingDetails
WHERE (DATEDIFF(day,RD_TestTime,GETDATE()) <= @range) and RD_PrecisionRate>=60 ) as temp
where temp.zui is not null .

这样的一个缺陷在于:如果一天当中有两条记录都是最高的话将会被查出来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐