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

 最近在做一个小项目时,有一这样的需求:查询最近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 .

这样的一个缺陷在于:如果一天当中有两条记录都是最高的话将会被查出来。

 

转载于:https://www.cnblogs.com/zhlnxindie/archive/2010/11/10/1873382.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值