0

好的,所以我们有练习表“员工”,它具有以下属性:fname(名字)、lname(姓氏)、bdate(出生日期)、薪水、dno(部门编号)。

小任务是我列出每个部门的所有员工,按部门分组,并根据最大的年龄为每个部门选择一个领导。

我只能提取每个部门的最低出生日期,但我无法提取部门中年龄最大的家伙的名字和姓氏。我写了这一行:

SELECT dno,COUNT(*),MIN(bdate) FROM employees GROUP BY dno;

我不知道如何做到这一点,而不是出生日期,它会写下出生日期最低的员工的名字和姓氏。

你能帮助我吗?我学得很快,但我不能很好地理解手册。我只猜我需要使用 HAVING 功能。

4

2 回答 2

4
select e.dno, e.fname, e.lname, em.Count
from employees e
inner join (
    select dno, min(bdate) as minbdate, count(*) as Count
    from employees
    group by dno
) em on e.dno = em.dno and e.bdate = em.minbdate
于 2012-09-28T15:55:41.620 回答
1
select e.dno, total, e.bdate, fname, lname
from (
        SELECT 
            dno,
            COUNT(*) as total,
            MIN(bdate) as bdate,
        from employees
        GROUP BY dno
    ) s
    inner join
    employees e on e.dno = s.dno and e.bdate = s.bdate
order by dno
于 2012-09-28T16:00:49.357 回答