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

用于查找负责监督最大员工人数的经理姓名的SQL查询是什么?

凤柏
2023-03-14
问题内容
person_id | manager_id | name |
          |            |      |
-------------------------------

查询以查找负责最大员工人数的经理的姓名?

补充: 这是唯一的表。是自我参照。DB是mysql。递归查询也可以。


问题答案:

我不清楚您想要什么,所以如果这不是您想要的,请澄清您的问题。

如果存在平局,此查询仅返回经理之一:

SELECT T2.name FROM (
    SELECT manager_id
    FROM table1
    WHERE manager_id IS NOT NULL
    GROUP BY manager_id
    ORDER BY count(*) DESC
    LIMIT 1
) AS T1
JOIN table1 AS T2
ON T1.manager_id = T2.person_id

查询结果:

Bar

这是一个查询,该查询在出现并列的情况下以并列的最大数量获取所有经理:

SELECT name FROM (
    SELECT manager_id, COUNT(*) AS C
    FROM person
    WHERE manager_id IS NOT NULL
    GROUP BY manager_id) AS Counts
JOIN (
    SELECT COUNT(*) AS C
    FROM person
    WHERE manager_id IS NOT NULL
    GROUP BY manager_id
    ORDER BY COUNT(*) DESC
    LIMIT 1
) AS MaxCount
ON Counts.C = MaxCount.C
JOIN person
ON Counts.manager_id = person.person_id

第二个查询的结果:

Foo
Bar

这是我的测试数据:

CREATE TABLE Table1 (person_id int NOT NULL, manager_id nvarchar(100) NULL, name nvarchar(100) NOT NULL);
INSERT INTO Table1 (person_id, manager_id, name) VALUES
(1, NULL, 'Foo'),
(2, '1', 'Bar'),
(3, '1', 'Baz'),
(4, '2', 'Qux'),
(5, '2', 'Quux'),
(6, '3', 'Corge');


 类似资料:
  • 我们有一个emp表,其中包含empno、ename、job、mgr、hiredate、sal、comm、deptno列 我试过了 我的输出是每个值为1的经理的姓名我们如何输出员工最多的经理的姓名?

  • Sql查询来查找活动员工。根据employee id列降序对输出进行排序,只获取前15条记录。显示员工id、员工姓名、城市、州、国家、薪资、在职日期、状态、部门名称、经理姓名。雇员姓名:用空格字符连接firstname和lastname并只从雇员姓名中提取前10个字母经理姓名:显示firstname和lastname(用空格分隔) null

  • 我试图选择一个拥有最年长员工的经理的名字和姓氏,但是我遇到了一些问题,因为每当我运行这个: 因为where子句设置为查找所有员工,所以它返回所有员工,如果我将其更改为manager,则返回所有经理。我理解为什么会这样,但我真的不知道如何解决我的问题。 我希望结果集返回经理的名字和姓氏以及他们最年长的员工的日期。 我觉得这与我的表是如何设置的无关,因为在我的情况下我无法更改它们,更重要的是我如何编写

  • 我试图用SQL编写一个查询,从同一个“employee”表中返回员工的姓和经理的姓。每个员工都有一个employeeid和一个“reportsto”列,其中包含其经理的employeeid。 这是我目前为止返回第一部分的内容(员工的姓和报告对象的id) 这个返回 我不知道如何将“reports”取下来,抓取它对应的employeeid,然后添加经理员工的姓,并将其添加到同一个记录中。 所以表应该是

  • 我有个问题要解决。我有n个项目,每个项目都有一个v值,放在一行中。然后我有k个监督项目,一个在x位置的监督项目可以监督项目x-1,x,X1。我想计算的是k主管使用动态规划可以监督的最大值。 n={1,2,3,4}v={7,10,5,8}这意味着一个职位1的主管的总价值- 那么,如何计算给定数量的监管者所能覆盖的最大值呢 在本例中,1个主管的最大值为23,2个主管的最大值为36(选择1) 我尝试过利

  • 问题内容: 我有一张桌子,上面有一张图表中的数据。 例如 我需要一个查询,该查询返回值在局部最大值处的结果,即特定索引处的值大于index + 1和index-1处的值。 因此,对于示例集,它应返回索引列表:2、6、9,它们对应于值7、12、14。 我在SQLite中使用PHP。我可以用php中的foreach循环来做到这一点,但想知道是否有一种简单的方法可以仅使用SQL命令来做到这一点。 任何输