2017-05-31 82 views
1

mytable的如何执行查询以获取最新数据?

DATE  NAME POCKET1 POCKET2 LOCATION 
1/1/2010 john 5   30  home 
2/1/2010 John 4   10  school 
3/1/2010 john 2   20  mall 

我需要帮助查询myTable,得到如预期的结果。 我知道如何获得平均值,但不知道如何获得最新的LOCATION

select NAME,max(POCKET1),avg(POCKET2) from myTable 
where NAME = 'john' group by NAME; 

预期结果

NAME max(POCKET1) avg(POCKET2) LatestLOCATION 
john 5    20    mall 
+0

所做的最新位置谢谢Niss e Engstrom。这是我的第一篇文章,不知道如何使它可读性如此。 – tuti

回答

1

按日期倒序

select 
    NAME 
    ,max(POCKET1) 
    ,avg(POCKET2) 
    , (select location from mytable order by date desc limit 1) as Location 
from myTable 
where NAME = 'john' group by NAME; 

获得最佳1级,如果你想获得约翰

select 
     NAME 
     ,max(POCKET1) 
     ,avg(POCKET2) 
     , (select location from mytable y where y.name = x.name order by date desc limit 1) as Location 
    from myTable x 
    where NAME = 'john' group by NAME; 
+0

ahaa ..谢谢你maSTAShuFu。有用! – tuti