为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:docker 启动dm8_20240605_rev215128_x86_rh6_64 镜像
【操作系统】:
【CPU】:
【问题描述】*:
我参考文档中:
返回最值所在的行数据
如需查询最大工资 (30000) 所在行的员工姓名。
我们可以使用分析函数满足这个需求,还可以同时取最大和最小值。示例语句如下所示:
Copy
SELECT job_id,
employee_id,
MAX (employee_name)
KEEP (DENSE_RANK FIRST ORDER BY salary)
OVER (PARTITION BY job_id)
AS 工资最低的人,
MAX (employee_name)
KEEP (DENSE_RANK LAST ORDER BY salary)
OVER (PARTITION BY job_id)
AS 工资最高的人,
employee_name,
salary
FROM dmhr.employee
WHERE job_id = 11
ORDER BY 1, 6 DESC;
改造我的 sql
SELECT
"qu_id",
(NOW() - "create_time")*24 AS days_diff,
"create_time",
MAX("qu_id") KEEP (DENSE_RANK FIRST ORDER BY (NOW() - "create_time")*24) OVER () AS 时间差最小的qu_id,
MAX("qu_id") KEEP (DENSE_RANK LAST ORDER BY (NOW() - "create_time")*24) OVER () AS 时间差最大的qu_id
FROM
"zj_base_question_work"
WHERE
"qu_status" = 1
AND "create_time" > ADD_DAYS(NOW(), -30)
ORDER BY
"create_time" DESC;
我期望不使用子查询,同时查出时差最大的 qu_id 和最小的 qu_id,可是执行之后提示:
同时我试过LAST_VALUE函数,也没用明白,同样提示分析函数问题,
麻烦大佬解惑~
怀疑这个docker版本是个人版 不是企业版
看一下版本,这边是没问题的
怀疑是当前版本的问题。
查下版本看看
select id_code,* from v$version;
select build_version from v$instance;