【发布时间】:2015-03-31 05:09:00
【问题描述】:
我在 ETSU 学习数据库基础。我们的讲师来自孟加拉国,因此有时很难听懂他的讲课。那么 SYSDATE 的使用就是那些日子之一。然后在我们实验室有这个问题,
显示按 job_id 分组的员工的平均工作时间(天数)。假设没有人辞职或被解雇。使用 Oracle 日期函数 SYSDATE。
经过数小时的谷歌和堆栈溢出搜索,以及教授未回答的问题,它仍然难倒我。
我尝试了几个(SELECT、FROM、GROUP_BY、HAVING 和 ORDER_BY),终于来到这里寻求帮助。
这是我的脚本:
SELECT job_id, hire_date
FROM hr.employees
GROUP BY job_id
HAVING AVG(SYSDATE) - hire_date;
这是我的错误: 从行开始的错误:命令中的 1 - 选择 job_id,hire_date FROM hr.employees 按作业 ID 分组 HAVING AVG(SYSDATE) - 雇用日期; 命令行错误:4 列:31 错误报告 - SQL 错误:ORA-00920:无效的关系运算符 00920. 00000 - “无效的关系运算符”
我做错了什么?
【问题讨论】:
-
AVG(SYSDATE) - hire_date不是布尔条件 - 这就是错误消息告诉您的内容。另外:您无法计算单个日期的平均值(如果定义了这样的操作,它只会产生 sysdate) -
啊,看到这有助于我更多地了解 SYSDATE 的用途。现在,当我被问到一个测试或有另一个实验室要求它时,我将更有能力回答并正确回答。我很高兴我问了。
标签: sql oracle group-by sysdate