我想从按两列分组的组中选择具有最大值的行。
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 ON
和max()
获得结果,但只获得了很多错误。
答案 0 :(得分:4)
SELECT
share_id
,age_range
,MAX(average_date) as average_date
FROM
TableName
GROUP BY
share_id
,age_range