如何查询某用户近一个月内正确率大于60%的阅读记录,每天只显示符合条件正确率最高的那个

表中字段: 

RD_User, RD_OrginalArticle, RD_RightWords, RD_DictationArticle,
 RD_LastReadIndex, RD_Speed, RD_ReadTime, RD_DictationTime, RD_SumTime,
RD_PrecisionRate, RD_TestTime  分别对应用户名,阅读文章,正确答案,默写答案,上次阅读的位置,阅读速度,阅读时间,默写时间,总时间,默写正确率,测试时间
查询用户最近一个月内的正确率大于60%的阅读记录,每天只显示符合条件的速度最高的那个(每个用户一天内可能有多条数据,也可能一条数据也没有)

潇潇雨雨
浏览 561回答 1
1回答

杨魅力

select * from (select distinct convert(varchar(10),RD_ReadTime,112) RD_ReadTime from [tablename]) a cross apply  (select top 1 * from [tablename]where  a.RD_ReadTime=convert(varchar(10),RD_ReadTime,112)  and left(convert(varchar(10),RD_ReadTime,112),6)=left(convert(varchar(10),getdate(),112),6)  and RD_User=[你想要的用户名] --也可不要这个条件则不限用户  and RD_PrecisionRate>[你想要的正确率] --如大于%60 order by RD_Speed desc --降序取每天速度最高 相反升序则取每天速度最低的) b   如有疑问及时提出
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server