RT: SysID ID Time Name SysID ID Time Name
1 1 2013 小王 1 1 2013 小王
2 1 2012 小雨 3 2 2013 小米
3 2 2013 小米 -------------->
4 2 2012 小菊
SQL:
select * from
(SELECT ID,NAME,TIME,ROW_NUMBER () OVER (PARTITION BY ID ORDER BY Time desc) as flag FROM Table) cmj
where cmj.flag = 1
说明:
row_number() 顺序号码, 也就是 行号, 比如 1,2,3,4,5 这样的顺序。
over 语法需要,必须的。
partition by name, kecheng,score 是按照 name, kecheng,score 分区。
也就是 如果有 不同的 name, kecheng,score , 这个 序号又重新从1开始计算。
order by rowid 是 排序方式, 也就是 最小的 rowid , row_number() 是1,然后随着 rowid 的增加, row_number() 不断递增