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子句中。
有人能帮助我吗?
答案 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)