部门表 table1(部门、姓名、职务、薪水),查询各个开发部的程序员,和各个维护部的维护工程师薪水在1000元以上的超过10个人的部门的总个数。

解决方案 »

  1.   

    SELECT COUNT(姓名) AS 开发部的程序员个数,部门表.部门,职务 FROM 部门表
    LEFT JOIN (SELECT 部门,COUNT(姓名) AS 人数 FROM 部门表 GROUP BY 部门) AS 各部门人数 ON 各部门人数.部门=部门表.部门
    WHERE 薪水>1000 AND 各部门人数.人数>10 AND 部门表.部门='开发部' AND 职务='程序员'
    GROUP BY 部门表.部门,职务SELECT COUNT(姓名) AS 维护部的维护工程师个数,部门表.部门,职务 FROM 部门表
    LEFT JOIN (SELECT 部门,COUNT(姓名) AS 人数 FROM 部门表 GROUP BY 部门) AS 各部门人数 ON 各部门人数.部门=部门表.部门
    WHERE 薪水>1000 AND 各部门人数.人数>10 AND 部门表.部门='维护部' AND 职务='维护工程师'
    GROUP BY 部门表.部门,职务
      

  2.   

    要算个数,建议有一个ID字段,把COUNT(姓名)换成COUNT(ID)