Mysql SQL选择查询
假设我有一个SQL表格公司,有三列:部门id、员工、工作。大概是这样的:Mysql SQL选择查询,mysql,sql,select,Mysql,Sql,Select,假设我有一个SQL表格公司,有三列:部门id、员工、工作。大概是这样的: DEPARTAMENT_ID | EMPLOYEE | JOB -------------------------------------- 1 | Mark | President 1 | Robert | Marketing Manager 1 | Rose | Administration Assitant 2
DEPARTAMENT_ID | EMPLOYEE | JOB
--------------------------------------
1 | Mark | President
1 | Robert | Marketing Manager
1 | Rose | Administration Assitant
2 | Anna | Programmer
2 | Michael | Programmer
2 | Celia | Sales Manager
3 | Jhon | Sales Manager
3 | Donna | Programmer
3 | David | Marketing Manager
我想写一个查询,返回至少50%的工作相同的部门id
在我的示例中,我需要的结果是:
DEPARTAMENT_ID |
--------------------------------------
2 |
如何编写此SQL查询?我想我试过各种各样的东西,但我不明白:。这有点棘手。你需要将一个部门的工作总人数与总人数进行比较。因此,一种方法使用两个聚合:
select department_id
from (select department_id, count(*) as numemp
from t
group by department_id
) d join
(select department_id, max(numemp) as numemp
from (select department_id, job, count(*) as numemp
from t
group by department_id, job
) d
group by department_id
) dj
on d.numemp <= 2 * dj.numemp;
如果你有一个部门正好分为两份工作,你可能会得到重复的工作。在这种情况下,请使用select distinct.显示您尝试过的内容!天啊。它工作得很好!!!:哦,非常感谢你!!!我试图做这样的事情,但我过去太复杂了。祝您有个美好的一天!!