我的表格看起来像
ID, name, Likes, Login_time
select * from mytbl
我想过滤此表:
distinct ID, name like, login_time(last login time)
我尝试了这个查询,但它没有用。
select *
from
(select
name, likes, login_time
rank() over (partition by id order by login_time desc) as rank
from
mytbl) t
where
t.rank = 1
答案 0 :(得分:1)
使用row_number而不是rank
select *
from
(
select
id, name, likes, login_time,
ROW_NUMBER() over (partition by id order by login_time desc) as rank
from
mytbl )t
where
t.rank = 1
答案 1 :(得分:0)
试试这个
;WITH temps AS
(
SELECT Id, name, likes, login_time, row_number() over(PARTITION BY Id ORDER BY login_time desc) AS RowIndex
)
SELECT Id, name, likes, login_time FROM temps
WHERE RowIndex = 1