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)
那么请告诉我什么是正确的形式?
找到最早雇用的员工:
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
| 归档时间: |
|
| 查看次数: |
24779 次 |
| 最近记录: |