首页 > 解决方案 > 为什么在使用 MIN/MAX 函数时必须使用聚合器

问题描述

我想MIN从列中获取值,以及相应的date

SELECT date, MIN(speed) FROM foo 
    INNER JOIN bar
        ON foo.id = bar.foo_id;

那行不通

列日期必须在 GROUP BY 或另一个聚合函数中使用

我不明白为什么我不能选择日期,在哪里MIN(speed)。它在同一行,只是另一个属性......

标签: sqlpostgresqlaggregate-functions

解决方案


我不明白为什么我不能选择日期,其中 MIN(speed) 是

聚合函数将许多行减少为仅一行。没有 GROUP BY的结果min(speed)(如您使用的那样)会产生一个(和行) - 但您将有多个date列的值

错误消息告诉您,Postgres 不会只是为您选择一个随机值,您必须指定一些规则来选择您想要的日期值或日期和速度的组合。


推荐阅读