从员工表中选择最早雇用的员工

dat*_*ili 4 sql oracle ora-00937

我有一个员工表,其中的字段是:

first_name,last_name,hire_date,salary,department_id,department_name等.

我被要求找到最早雇用的员工.我知道max,sysdate和months_between等函数,但我不知道如何在这里使用它?

我在想这个问题可以像这样解决:

select e.first_name,max(e.hire_date)
from employees e
Run Code Online (Sandbox Code Playgroud)

但它会生成以下错误:

 oRA-00937: not a single-group group function
    00937. 00000 -  "not a single-group group function"
    *Cause:    
    *Action:
    Error at Line: 1 Column: 7
Run Code Online (Sandbox Code Playgroud)

那么请告诉我什么是正确的形式?

p.c*_*ell 9

找到最早雇用的员工:

 SELECT * FROM
 (
     SELECT * 
     FROM  employees
     ORDER BY hire_date
 )
 WHERE rownum = 1;
Run Code Online (Sandbox Code Playgroud)

如果您想要排名前10位的最早雇佣员工:

 SELECT * FROM 
 (
   SELECT * 
   FROM  employees
   ORDER BY hire_date
 )
 WHERE rownum <= 10;
Run Code Online (Sandbox Code Playgroud)

这是使用Oracle的伪列 ROWNUM