【问题标题】:Select rows with max value from groups grouped by two columns (PSQL)从按两列分组的组中选择具有最大值的行 (PSQL)
【发布时间】:2016-11-14 18:43:17
【问题描述】:

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

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() 获得结果,但只得到了很多错误。

【问题讨论】:

  • 您能否发布您尝试过的代码以及错误,这看起来是一个相当简单的组,由 average_date 上的 MAX() 组成

标签: sql postgresql


【解决方案1】:
SELECT
    share_id
    ,age_range
    ,MAX(average_date) as average_date
FROM
    TableName
GROUP BY
    share_id
    ,age_range

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-11
    • 1970-01-01
    • 2019-01-06
    • 1970-01-01
    • 2016-03-18
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    相关资源
    最近更新 更多