如何创建此 Select 语句?

Posted

技术标签:

【中文标题】如何创建此 Select 语句?【英文标题】:How do I create this Select Statement? 【发布时间】:2011-02-23 05:56:48 【问题描述】:

有两个表:员工和部门。 Employee 表有列:empid、deptid、employeename 部门表有:deptid、deptname

我想创建一个选择语句,它将列出属于拥有超过 3 名员工的部门的所有员工。

我该怎么做?

【问题讨论】:

【参考方案1】:
select empid, employeename
from Employee
where deptid in (
    select deptid
    from Employee
    group by deptid
    having count(*) > 3
)

【讨论】:

【参考方案2】:

只是另一种方法......

Select e.empid, e.employeename
from employee e
where 3 <= (select count(e2.empid) 
            from employee e2 
            where e2.empid <> e.empid and e2.deptid = e.deptid)

【讨论】:

:) 谈论复杂的事情! @Roopesh - 同意它既复杂又昂贵。与@Jason 的第一个解决方案相比,也不推荐。但这只是实现它的另一种方法。如果他是初学者,它将帮助他更合乎逻辑地理解查询。上面写着 - 选择同一部门中存在超过 3 名其他员工的员工 :) 我喜欢寻找替代品。

以上是关于如何创建此 Select 语句?的主要内容,如果未能解决你的问题,请参考以下文章

我将如何在 MySQL 中订购此 SELECT 语句?

如何修复此 SELECT 语句中的错误 INTO 子句

可以在 select 语句的 where 部分中使用的 ORACLE SQL 函数

如何创建制表符分隔的 Select 语句?

Scala / Spark:如何将此参数传递给.select语句

如何通过 select 语句直接创建复杂查询而不是创建函数