我有两个表,stats 和 stat_log。统计日志是这样的:
user_id,stat_id,value,registered
它记录给定时间的统计值。我需要给定用户的每个统计数据的最后一个值。
所以我想要这样的东西,但有价值观:
select stat,max(registered) from stat_log where uid = 1 group by stat;
stat | max
------+------------
6 | 2009-10-08
1 | 2009-10-08
3 | 2009-10-08
5 | 2009-10-08
7 | 2009-10-08
4 | 2009-10-08
相反,我有这个:
select stat,max(registered),value from stat_log where uid = 1 group by stat,value;
stat | max | value
------+------------+-------
4 | 2009-10-08 | 38
5 | 2009-10-08 | 118
1 | 2009-10-08 | 100
1 | 2009-10-07 | 101
6 | 2009-10-08 | 68
3 | 2009-10-08 | 110
7 | 2009-10-08 | 53
什么是正确的查询?这是 PostgreSQL 8.3。