Oracle SQL-如何获取具有最大日期的记录的分配ID

超级英雄

我正在尝试获取该职位的最后一位雇员的工作分配ID。那将是拥有职位或最长日期的最后一个任务。如何在下面的查询中检索两者?

select max(to_char(paaf.effective_start_date, 'yyyymmdd')) || to_char(paaf.assignment_id)
from   apps.per_all_assignments_f paaf
where  paaf.position_id = 159841 
and    paaf.assignment_type in ('E', 'C')
and    paaf.primary_flag = 'Y'

我将最大日期转换为一个字符,以便将其细分为结果。

a_horse_with_no_name

使用window函数可以轻松解决此类问题:

select * 
from (
  select paaf.*, 
         max(paaf.effective_start_date) over (partition by position_id) as max_start_date
  from   apps.per_all_assignments_f paaf
  where  paaf.position_id = 159841 
  and    paaf.assignment_type in ('E', 'C')
  and    paaf.primary_flag = 'Y'  
) t
where effective_start_date = max_start_date;

该部分max(paaf.effective_start_date) over (partition by position_id) as max_start_date基本上与a相同,max(paaf.effective_start_date) ... group by position_id但无需对整个结果进行分组。

因为您只选择一个position_id,所以可以使用over ()-但是通过使用over (partition by position_id)查询,也可以用于检索多个职位的信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Oracle SQL查询在最大日期获取价值

来自分类Dev

Oracle SQL:连接具有不同ID的日期表

来自分类Dev

Oracle SQL:如何通过具有预定义贡献的每个组获取随机记录

来自分类Dev

获取没有记录的天数Oracle SQL

来自分类Dev

Oracle SQL-具有最大和最小数量的最新记录列表

来自分类Dev

SQL Oracle合并记录

来自分类Dev

Oracle SQL日期格式

来自分类Dev

Oracle SQL比较日期

来自分类Dev

Oracle SQL遍历日期

来自分类Dev

Oracle SQL比较日期

来自分类Dev

Oracle SQL遍历日期

来自分类Dev

具有错误执行日期的Oracle SQL Developer历史记录

来自分类Dev

Oracle Sql:仅通过ID和日期选择最新记录

来自分类Dev

Oracle SQL - 没有计数结果时返回日期记录

来自分类Dev

SQL [Oracle]:计算具有相同客户端ID的先前记录的数量

来自分类Dev

SQL [Oracle]:计算具有相同客户端ID的先前记录的数量

来自分类Dev

具有“ NOT NULL”约束的Oracle SQL SELECT未填充的记录

来自分类Dev

Oracle (SQL):如何获取 SQL 查询语法

来自分类Dev

Oracle SQL 选择具有最早时间的日期时间

来自分类Dev

oracle sql如何获取不匹配的肯定记录

来自分类Dev

如何在Oracle SQL中获取日期列的时间戳?

来自分类Dev

sql oracle更新日期

来自分类Dev

Oracle SQL-标称日期

来自分类Dev

错误的日期格式Oracle SQL

来自分类Dev

ORACLE SQL:填写缺少的日期

来自分类Dev

Oracle SQL日期间查询

来自分类Dev

SQL ORACLE选择日期

来自分类Dev

SQL中的日期转换(Oracle)

来自分类Dev

日期的 Oracle SQL 累计值