sql - 为什么在使用 MIN/MAX 函数时必须使用聚合器
问题描述
我想MIN
从列中获取值,以及相应的date
SELECT date, MIN(speed) FROM foo
INNER JOIN bar
ON foo.id = bar.foo_id;
那行不通
列日期必须在 GROUP BY 或另一个聚合函数中使用
我不明白为什么我不能选择日期,在哪里MIN(speed)
。它在同一行,只是另一个属性......
解决方案
我不明白为什么我不能选择日期,其中 MIN(speed) 是
聚合函数将许多行减少为仅一行。没有 GROUP BY的结果min(speed)
(如您使用的那样)会产生一个值(和行) - 但您将有多个date
列的值
错误消息告诉您,Postgres 不会只是为您选择一个随机值,您必须指定一些规则来选择您想要的日期值或日期和速度的组合。
推荐阅读
- javascript - 滚动到顶部时如何将导航背景颜色更改为透明?
- mysql - 显式事务和隐式事务是什么意思并举例说明
- angular - 在 Angular 中的事件前面添加“$”美元符号有什么影响?
- javascript - 如何将json数组中的`pid`转换为`children`形式的数组?
- android - 整个 res 文件夹不会从 Android Studio Project 推送到 github
- python - 删除两个数组中的匹配元素 - Python
- latex - 如何在 pgfplots 中绘制平滑曲线?以及如何删除 y 轴刻度?
- python - conda、yarn、npm 的 SSL 证书已损坏,但 pip 有效
- javascript - 如何编写存储信息并显示信息的投票栏?
- bash - 我有一个包含名称的 txt 文件,我想提取名字和姓氏。我创建了 bash 脚本,但它给了我一个错误