从按两列分组的组中选择具有最大值的行(PSQL)

时间:2016-11-14 18:43:17

标签: sql postgresql

我想从按两列分组的组中选择具有最大值的行。

shared_id    age_range   average_date
001          01-21       2016-10-25 22:00
001          01-21       2016-10-25 21:00
001          21-40       2016-10-25 20:00
001          21-40       2016-10-25 19:00
002          01-21       2016-10-25 18:00
002          01-21       2016-10-25 17:00
002          21-40       2016-10-25 16:00
002          21-40       2016-10-25 15:00
003          01-21       2016-10-25 14:00
003          01-21       2016-10-25 13:00
003          21-40       2016-10-25 12:00
003          21-40       2016-10-25 11:00

结果应该是:

shared_id    age_range   average_date
001          01-21       2016-10-25 22:00
001          21-40       2016-10-25 20:00
002          01-21       2016-10-25 18:00
002          21-40       2016-10-25 16:00
003          01-21       2016-10-25 14:00
003          21-40       2016-10-25 12:00

我尝试使用DISTINCT ONmax()获得结果,但只获得了很多错误。

1 个答案:

答案 0 :(得分:4)

SELECT
    share_id
    ,age_range
    ,MAX(average_date) as average_date
FROM
    TableName
GROUP BY
    share_id
    ,age_range