我有3个字段,id,time,name。name可能会重复,time是惟一的我希望查询出一个表,每个name只出现一次,同时该行能够查到该name中time最大的一行?
3 回答
开满天机
TA贡献1786条经验 获得超13个赞
select * from 你的表 a inner join (select name,max(time) as time from 你的表 group by name) b on a.name = b.name where a.time=b.time
解释:首先分组 取出 同一名字下的 最大 time, 然后通过 inner join 链接 查询你的表,
条件是 同一name下的最大 time 记录相同!
心有法竹
TA贡献1866条经验 获得超5个赞
1.select * from (select rank() over(partition by name order by time desc) rk, table.* from table) t
where t.rk<=1;
2.
select * from tb a inner join (select name,max(time) as time from tb group by name) b on a.time=b.time
你试一下吧 我暂时没法调试
添加回答
举报
0/150
提交
取消