需要设计查询来提取数据

时间:2018-04-16 19:39:20

标签: sql

CREATE TABLE EMPLOYEES 
(   
    EMPLOYEE_ID NUMERIC(6,0), 
    FIRST_NAME VARCHAR(20), 
    LAST_NAME VARCHAR(25) CONSTRAINT "EMP_LAST_NAME_NN" NOT NULL, 
    EMAIL VARCHAR(25) CONSTRAINT "EMP_EMAIL_NN" NOT NULL, 
    PHONE_NUMBER VARCHAR(20), 
    HIRE_DATE DATE CONSTRAINT "EMP_HIRE_DATE_NN" NOT NULL, 
    JOB_ID VARCHAR(10) CONSTRAINT "EMP_JOB_NN" NOT NULL, 
    SALARY NUMERIC(8,2), 
    COMMISSION_PCT NUMERIC(2,2), 
    MANAGER_ID NUMERIC(6,0), 
    DEPARTMENT_ID NUMERIC(4,0), 
);

我是SQL新手,我的任务要求我列出员工详细信息当且仅当部门编号50中有超过10名员工时。以下是我到目前为止所做的事情,

SELECT *
FROM EMPLOYEES
WHERE DEPARTMENT_ID = '50'
GROUP BY DEPARTMENT_ID
HAVING COUNT(EMPLOYEE_ID) > 10

但是我收到了错误

  

专栏' EMPLOYEES.FIRST_NAME'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。

有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE
FROM EMPLOYEES
WHERE DEPARTMENT_ID IN (SELECT DEPARTMENT_ID FROM EMPLOYEES 
WHERE DEPARTMENT_ID = 50
GROUP BY DEPARTMENT_ID
HAVING COUNT(EMPLOYEE_ID)> 10)