回 帖 发 新 帖 刷新版面

主题:求SQL语句

本人在制作一个Online Judge,有个SQL语句不知道怎么写。具体描述如下:
有这样的一个表:

提交序号    题目号 提交时间 结果     运行时间  运行内存  用户
Runid,  Proid, Subtime, Judgestatus, Runtime,  Memory,  Author

每个用户提交后会生成相应的记录,对同一个用户,同一道题目,现要选取AC中最优的,如果Runtime相等,则选取Memory较小的,如果都相等,则选取Runid较小的。当然同一个用户只能在结果表出现一次并且是最佳的。
例如:
http://acm.hdu.edu.cn/statistic.php?pid=1002

谢谢

回复列表 (共3个回复)

沙发

oracle中的写法:
select t.runid,t.proid,t.subtime,t.Judgestatus,t.runtime,t.memory,t.author
from(
select runid,proid,subtime,Judgestatus,runtime,memory,author,
row_number() over(partition by author ordey by runtime,memory,runid asc) rn
from test
) t
where t.rn=1;

板凳


有没SQL Server的?

3 楼

偶不懂sql server,帮你顶一个!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册