【发布时间】:2010-10-17 21:46:23
【问题描述】:
当使用 SQL MIN() 函数以及 GROUP BY 时,任何其他列(不是 MIN 列或 GROUP BY 列之一)是否会与匹配的 MIN 行中的数据匹配?
例如,给定一个包含部门名称、员工名称和薪水的表:
SELECT MIN(e.salary), e.* FROM employee e GROUP BY department
显然我会得到两个不错的列,最低工资和部门。员工姓名(和任何其他员工字段)是否来自同一行?即具有 MIN(salary) 的行?
我知道很可能有两个员工的薪水相同(并且最低),但我(现在)关心的只是获取有关(或一个)的所有信息最便宜的员工。
这会选择最便宜的推销员吗?
SELECT min(salary), e.* FROM employee e WHERE department = 'sales'
基本上,我能否确定与 MIN() 函数一起返回的数据将与具有该最小值的(或单个)记录相匹配?
如果数据库很重要,我正在使用 MySql。
【问题讨论】:
标签: sql mysql aggregate-functions