<p>It's common to have a table where for example the the fields are account, value, and time.  What's the best design pattern for retrieving the last value for each account?  Unfortunately the last keyword in a grouping gives you the last physical record in the database, not the last record by any sorting.  Which means IMHO it should never be used.  The two clumsy approaches I use are either a subquery approach or a secondary query to determine the last record, and then joining to the table to find the value.  Isn't there a more elegant approach?</p>

The subquery option sounds best to me, something like the following psuedo-sql.  It may be possible/necessary to optimize it via a join, that will depend on the capabilities of the SQL engine.
```
```
select * 
from table 
where account+time in (select account+max(time) 
                       from table 
                       group by account 
                       order by time)
```
```