注册

分析函数只允许出现在查询项和ORDER BY子句中

🇯 2024/07/15 760 6

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【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,可是执行之后提示:
image.png
同时我试过LAST_VALUE函数,也没用明白,同样提示分析函数问题,
麻烦大佬解惑~

回答 0
暂无回答
扫一扫
联系客服