当前位置: 首页 > 面试题库 >

获取MySQL表中的第二个最大值[关闭]

水昊阳
2023-03-14
问题内容

已关闭 。这个问题需要更加集中。它当前不接受答案。

想改善这个问题吗? 更新问题,使其仅通过编辑此帖子来关注一个问题。

7个月前关闭。

我有这样定义的员工和薪水表:

"name" (type: VARCHAR)
"salary" (type: INTEGER)

我可以使用什么查询来获得该表中第二高的薪水?


问题答案:

这是关系的原因。

Name    Salary
Jim       6
Foo       5
Bar       5
Steve     4

SELECT name, salary
FROM employees
WHERE salary = (SELECT MAX(salary) FROM employees WHERE salary < (SELECT MAX(salary) FROM employees))

Result --> Bar 5, Foo 5

编辑: 我接受了Manoj的第二篇文章,对其进行了调整,并使它更具可读性。对我来说 n-1 不直观;但是,使用我想要的值是2 =
2nd,3 = 3rd等。

/* looking for 2nd highest salary -- notice the '=2' */
SELECT name,salary FROM employees
WHERE salary = (SELECT DISTINCT(salary) FROM employees as e1
WHERE (SELECT COUNT(DISTINCT(salary))=2 FROM employees as e2
WHERE e1.salary <= e2.salary)) ORDER BY name

Result --> Bar 5, Foo 5


 类似资料:
  • 问题内容: 我尝试过但失败了: 问题答案: 使用 GREATEST() 例如: 注意:每当那时任何单个值包含null时,此函数始终返回null(感谢用户@ sanghavi7)

  • 我在数据库中有一个表。具有序列号(用户号)的用户(名称)可以播放多次。每次用户播放时,都会生成一个新id(id),并将其与分数(score)一起存储在数据库中。我想从表中获取前三名的分数,在表中显示每个用户的唯一最高分数。 表: 结果应该是: 我怎样才能得到上面的结果。我正在使用MySQL。

  • 问题内容: 因此,我有一个包含几个列表的列表,这些列表都首先包含三个字符串,然后是一个浮点数,例如: 如何制作一个返回最大值的函数(此处为9.1931)?我试过了 但这只是给我一个清单。 编辑:此外,以任何方式我可以获取值来自何处的索引?喜欢,来自哪个子列表? 问题答案: 循环浏览外部列表,然后选择每个子列表的最后一个元素: 最好将所有与函数相关的变量保留在范围内(将列表作为参数传递,并且不要通过

  • 本文向大家介绍从第一个表中获取最大ID值,然后使用MySQL INSERT INTO select插入另一个表中的所有ID。,包括了从第一个表中获取最大ID值,然后使用MySQL INSERT INTO select插入另一个表中的所有ID。的使用技巧和注意事项,需要的朋友参考一下 让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出

  • 问题内容: 我有一个这样的清单: 如果仅使用该方法,它将返回答案,如果我试图找到max name ,那将是正确的,但是我试图返回其整数最大的元素。 问题答案: 之所以起作用,是因为 max 函数的 key 参数指定了一个函数,当 max 想要知道用于搜索最大元素的值时,该函数将被调用。 max 将为序列中的每个元素调用该函数。并创建一个接收列表并返回第一个(从零开始计数)元素的小函数。所以 __

  • 问题内容: 我有三个mysql表,我想从中提取一些信息,这些表是: 视频-代表带有分数的视频。 标签-包含标签的全局列表。 VideoTags在视频和标签之间创建关联。 我想做的就是找到每个标签的得分最高的视频。有许多具有相同标签的视频,但是我的结果集将具有与标签相同的行数。最终目标是为每个唯一标签(标签是主题加上哈希值)提供最佳视频列表(按得分)。 我的SQL noob尝试实现此目标的方法如下: