Sql 列出在同一部门工作的两名员工

Sql 列出在同一部门工作的两名员工,sql,database,oracle,Sql,Database,Oracle,在oracle SQL中,如何列出在同一部门工作的两名员工。。。我的员工表如下所示: employeeid department 101 2 102 2 103 3 104 3 105 4 您可以通过以下方式获取具有多个员工的部门中的所有员工: SELECT * FROM employees WHERE department IN ( SELECT department FR

在oracle SQL中,如何列出在同一部门工作的两名员工。。。我的员工表如下所示:

employeeid  department
    101        2
    102        2
    103        3
    104        3
    105        4

您可以通过以下方式获取具有多个员工的部门中的所有员工:

SELECT * FROM employees
WHERE department IN
(
  SELECT department
  FROM employees
  GROUP BY department
  HAVING COUNT(*) > 1
)
或者使用
LISTAGG
在列表中显示ID:

  SELECT 
    department,
    LISTAGG(employeeid, ', ') AS EmployeeList
  FROM employees
  GROUP BY department
  HAVING COUNT(*) > 1

您可以通过以下方式获取具有多个员工的部门中的所有员工:

SELECT * FROM employees
WHERE department IN
(
  SELECT department
  FROM employees
  GROUP BY department
  HAVING COUNT(*) > 1
)
或者使用
LISTAGG
在列表中显示ID:

  SELECT 
    department,
    LISTAGG(employeeid, ', ') AS EmployeeList
  FROM employees
  GROUP BY department
  HAVING COUNT(*) > 1

如果您的表名为t,则可以通过自联接“列出”在同一部门工作的员工对,如下所示:

select t1.employeeid as employee1, t2.employeeid as employee2, department
from t t1 join t t2 using (department)
where t1.employeeid < t2.employeeid

如果您的表名为t,则可以通过自联接“列出”在同一部门工作的员工对,如下所示:

select t1.employeeid as employee1, t2.employeeid as employee2, department
from t t1 join t t2 using (department)
where t1.employeeid < t2.employeeid

您希望输出是什么样子的?请下次做你的工作,然后来诊断你的问题。这不是一个代码编写服务。也许这对你来说不是问题,但作为我对SQL的初学者,这是一个问题,所以如果你不想帮忙的话,请退后!您希望输出是什么样子的?请下次做你的工作,然后来诊断你的问题。这不是一个代码编写服务。也许这对你来说不是问题,但作为我对SQL的初学者,这是一个问题,所以如果你不想帮忙的话,请退后!这些“解决方案”与列出“在同一部门工作的一对(或多对)员工”有什么关系?@mathguy我没有像你那样直截了当地接受“对”。当然,您的自助加入答案是一个可能的解决方案,但如果一个部门中有两个以上的员工,您将在每个部门中得到每个“配对”的组合,而这可能不是OP想要的。这两个“解决方案”中的任何一个与列出“在同一部门工作的员工配对”有什么关系?@mathguy我没有选择“配对”就像你做的那样。当然,您的自连接答案是一个可能的解决方案,但是如果一个部门中有两个以上的人,那么您将在每个部门中得到每个“配对”的组合,而这可能不是OP想要的。