简单的最大功能困扰着我

时间:2017-03-13 20:05:20

标签: mysql sql select max

简单的查询困扰着我。我似乎无法做到正确,我知道这很简单:

Select username
From hsi.wftransactionlog
where logdate = (Select max(logdate) From hsi.wftransactionlog) 

我想返回具有最高日期的用户名。

我正在寻找每个用户名1行。具有最大日期的那个。

3 个答案:

答案 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 bylimit

Select username
From hsi.wftransactionlog
order by logdate desc
limit 1;

注意:这不会返回关系,而您的版本会返回。

答案 2 :(得分:1)

假设logtes是唯一的,那么只需对查询进行排序并占据最上一行就更容易了:

SELECT   *
FROM     hsi.wftransactionlog
ORDER BY logdate DESC
LIMIT    1