mysql-如何获取学生详细信息SQL查询

>我有ID,SID,CHECKID,DATE的餐桌学生
>此处ID:tableID(自动递增),SID:studentID,CHECKID:0/1(即IN / OUT),DATE.
>学生进入教室时,将用卡节省每天的出勤率.
>我有数据是

ID SID CHECKID DATE

———– —–

0 101 0 2013年10月10日10:00:00

1 101 1 04-10-2013 11:30:00

2101 0 04-10-2013 14:15:00
>我试过像这样的查询:

从学生中选择DISTINCT SID,MAX(DATE),CHECKID,其中SID =’101’按SID分组
>然后我得到了两个记录的结果.
>我需要的记录是最大日期(即特定学生的最近记录),例如:仅第3条记录.
>任何帮助.在此先感谢.

解决方法:

最快的方法可能是使用解析函数:

select *
  from (select s.*,
               row_number() over(partition by sid order by date desc) as rn
          from student s)
 where rn = 1

另一种方法是相关子查询:

select *
  from student s
 where date = (select max(x.date) from student x where x.sid = s.sid)

另一种方法是加入内联视图:

select s.*
  from student s
  join (select sid, max(date) as sid_last_date from student group by sid) v
    on s.sid = v.sid
   and s.date = v.sid_last_date
上一篇:完全卸载oracle11g步骤


下一篇:Oracle过程输出参数从PHP返回-1