SQL查询_____查询最近30天内正确率大于60%的阅读记录,每天只显示符合条件的速度最高的那个
2010-11-10 11:05
603 查看
最近在做一个小项目时,有一这样的需求:查询最近30天内正确率大于60%的阅读记录, 每天只显示符合条件的速度最高的那个.
现有数据库表字段:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/06/aed355bc6a147a3158c74a73d11e0816.png)
写成存储过程如下:
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://oscdn.geek-share.com/Uploads/Images/Content/202004/06/aed355bc6a147a3158c74a73d11e0816.png)
写成存储过程如下:
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 .
这样的一个缺陷在于:如果一天当中有两条记录都是最高的话将会被查出来。
相关文章推荐
- 【SQL】按字段分组查询符合条件记录的方法
- sql语句查询出表里符合条件的第二条记录的方法
- SQL查询数据库中符合条件的记录的总数
- sql语句查询出表里符合条件的第二条记录的方法
- Sql 查询一个表中符合条件的且某一项为最大的记录
- 如何让从数据库中查询出符合条件的记录,然后给每个记录自动加上序号,序号是根据符合条件的记录多少在随时变化.而且也会在以查询生成的报表中显示出来.谢谢
- Oracle中如何根据一个字段查询是否有符合条件的记录
- SQL存储过程将符合条件的大量记录批量删除脚本
- 在PL/SQL Developer中怎样显示通过查询表返回的所有记录?
- EXCEL 查询附合条件的记录,并显示同一行的其它值
- 筛选同时符合多个字段指定条件记录的SQL
- Mysql数据库查询符合where条件的某几条结果sql语句
- SQL 按匹配条件的多少查询出匹配度最高的配置数据
- sql 一个6亿的表a,一个3亿的表b,通过外间tid关联,你如何最快的查询出满足条件的第50000到第50200中的这200条数据记录。
- sql根据某一字段查询不重复记录,同时要查询出所有满足条件的字段信息
- 单据管理窗口,上下两个datagridview查询时没有符合条件的记录时,绑定数据源的方法
- sql语句查询出表里的第二条、第三条记录(附加多个条件)
- SQL查询同一字段下相同的记录,并只显示有相同记录的
- ORACLE查询符合条件当前记录的上一、几记录或下一、几记录
- [SQL-码农]SELECT 没有符合条件记录时,出现多一行数据