当使用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。
如果您想获得每个部门中最“便宜”的员工,那么您将有两种选择:
SELECT
E.* -- Don't actually use *, list out all of your columns
FROM
Employees E
INNER JOIN
(
SELECT
department,
MIN(salary) AS min_salary
FROM
Employees
GROUP BY
department
) AS SQ ON
SQ.department = E.department AND
SQ.min_salary = E.salary
或者您可以使用:
SELECT
E.*
FROM
Employees E1
LEFT OUTER JOIN Employees E2 ON
E2.department = E1.department AND
E2.salary < E1.salary
WHERE
E2.employee_id IS NULL -- You can use any NOT NULL column here
第二个声明的工作原理是有效地告诉我,向所有雇员展示您在同一部门找不到其他较低薪水的雇员。
在这两种情况下,如果两个或两个以上雇员的工资相等,并且最低,您将同时获得这两个雇员(全部)。
我在MongoDB中有一些地理空间数据,我想找到靠近用户位置并符合某些标准的地方列表。 下面是我的文档结构: 现在我正试图通过纬度,经度,找到有票可用的,并且是某种类型的地方。当我只使用带坐标的NearQuery(不添加查询)时,我得到的是结果,但当我添加查询对象时,我得到的是空列表。 提前致谢
问题内容: 我有这两个课(表) 还有这个: 运行此代码后,在数据库(student_course)中创建了一个额外的表,现在我想知道如何在该表中添加额外的字段,例如(Grade,Date和…(我的意思是student_course表)),我看到了一些解决方案,但我不喜欢它们,而且我对它们有一些问题: 第一个样品 问题答案: 如果在链接表(STUDENT_COURSE)上添加额外的字段,则必须根据s
本文向大家介绍mongoDB使用投影剔除‘额外’字段的操作过程,包括了mongoDB使用投影剔除‘额外’字段的操作过程的使用技巧和注意事项,需要的朋友参考一下 简介 实际开发过程中,为便于开发人员定位问题,常存在多个额外的字段。例如:增加createdAt、updatedAt字段以查看数据的创建和更改时间。而对于客户端而言,无需知道其存在。针对以上情况,本文详细介绍了“额外”字段的用途以及处理过程
我有列表有字段名称,货币和金额。我想按名称、货币和金额来分组。 我想要列表中的结果/输出
我正在使用Laravel迁移创建表。它在处创建了处更新了使用
问题内容: 使用样本数据: df 我试图弄清楚如何按key1分组数据并仅对key2等于“ one”的data1值求和。 这是我尝试过的 但这给了我一个数值为“无”的数据框 这里有什么想法吗?我正在寻找与以下SQL等效的Pandas: 提前致谢 问题答案: 首先按key1列分组: 然后为每个组取subDataFrame,其中key2等于“ one”并求和data1列: 为了解释发生了什么,让我们看一