我有下表
userid comp_dd coursecode qualification course_id course passyear totalmarks func stream
----------- ----------- ----------- --------------- ----------- -------------------------------------------------- ----------- -----------------
60 26 1 High School 15 Class 10 26 67 2 All Subject
60 26 2 Senior Secondry 15 Class 12 26 85 2 Commerce
60 2010 3 Graduates 4 B.Tech/B.E 2010 54 1 IT/Computers
60 2013 4 Post Graduates 9 M.com 2013 98.5 2 Commerce
我想获得最大课程代码的唯一记录,输出应为
userid comp_dd coursecode qualification course_id course passyear totalmarks func stream
----------- ----------- ----------- --------------- ----------- -------------------------------------------------- ----------- -----------------
60 2013 4 Post Graduates 9 M.com 2013 98.5 2 Commerce
会有很多不同用户ID的记录
答案 0 :(得分:2)
我想你想要
select t.*
from t
where t.coursecode = (select max(t2.coursecode)
from t t2
where t2.userid = t.userid
);
您还可以使用窗口函数来执行此操作,但是使用正确的索引(位于(userid, coursecode)
上,关联的子查询通常会更快。
答案 1 :(得分:0)
按coursecode
降序排列表格并获得第一行:
select top 1 *
from tablename
order by coursecode desc
这仅在列coursecode
中没有重复项的情况下有效,因为它将仅获取1行,但是我想是这样,因为您说:
我想获得最大课程代码的唯一记录