带有基本表的小型SQL任务

带有基本表的小型SQL任务,sql,Sql,好的,我们有练习表“employees”,它有以下属性: fname(名字)、lname(姓氏)、bdate(出生日期)、薪水、dno(部门编号) 我的小任务是列出每个部门的所有员工,按该部门分组,并根据最大年龄为每个部门选择一名领导 我只能提取每个部门的最低出生日期,但我无法提取出部门中年龄最大的那个家伙的名字和姓氏。我写了这句话: SELECT dno,COUNT(*),MIN(bdate) FROM employees GROUP BY dno; 我不知道该怎么做,这样它就不用写出生日期

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

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

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

SELECT dno,COUNT(*),MIN(bdate) FROM employees GROUP BY dno;
我不知道该怎么做,这样它就不用写出生日期,而是写上了生日最低的员工的名字和姓氏


你能帮我吗?我学得很快,但我不能很好地理解手册。我想我只需要使用have函数。

什么?你在开玩笑吧?在我的大学里,我已经听了3次SQL讲座,但我们从未写过如此复杂的东西。。。哦,好吧,我想我需要了解这里的一切意味着什么。不用担心,大多数人不是在3节课中掌握SQL:)@VanillaFace那么你可能是在学习中的子查询版本,而不是这个join版本。什么?你在开玩笑吧?在我的大学里,我已经听了3次SQL讲座,但我们从未写过如此复杂的东西。。。哦,好吧,我想我需要了解这里的一切意味着什么。不用担心,大多数人不是在3节课中掌握SQL:)@VanillaFace那么你可能是在追求中的子查询版本,而不是这个join版本。你在使用什么产品。如果您的产品支持窗口功能,您可以使用窗口功能您使用的是什么产品。如果您的产品支持,您可以使用窗口功能
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
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