我有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
提交
取消