简单的查询困扰着我。我似乎无法做到正确,我知道这很简单:
Select username
From hsi.wftransactionlog
where logdate = (Select max(logdate) From hsi.wftransactionlog)
我想返回具有最高日期的用户名。
我正在寻找每个用户名1行。具有最大日期的那个。
答案 0 :(得分:3)
我正在寻找每个用户名1行。具有最大日期的那个。
那么你可能想做group by
之类的
Select t1.*
From hsi.wftransactionlog t1
join (Select username, max(logdate) as maxlogdate
From hsi.wftransactionlog
group by username) xxx
on t1.username = xxx.username and t1.logdate = xxx.maxlogdate;
答案 1 :(得分:2)
如果您只想查找一行,请使用order by
和limit
:
Select username
From hsi.wftransactionlog
order by logdate desc
limit 1;
注意:这不会返回关系,而您的版本会返回。
答案 2 :(得分:1)
假设logtes是唯一的,那么只需对查询进行排序并占据最上一行就更容易了:
SELECT *
FROM hsi.wftransactionlog
ORDER BY logdate DESC
LIMIT 1