Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从具有相同id的表中选择最大状态_Sql_Oracle_Oracle11g_Greatest N Per Group - Fatal编程技术网

Sql 从具有相同id的表中选择最大状态

Sql 从具有相同id的表中选择最大状态,sql,oracle,oracle11g,greatest-n-per-group,Sql,Oracle,Oracle11g,Greatest N Per Group,我有一张桌子 PartNo| Revision Status 501. 1. Current 501. 2. Internal 502. 1. Internal 502. 2. Trail 要从中检索吗 1. PartNo 501 having status is current 2. Part 502 having status is Trail 基于状态首选项,我需要根据状态序列获取零件号 1. Current 2. Tr

我有一张桌子

PartNo| Revision Status
501.   1.       Current
501.   2.       Internal
502.   1.       Internal
502.   2.       Trail
要从中检索吗

1. PartNo 501 having status is current 
2. Part 502 having status is Trail
基于状态首选项,我需要根据状态序列获取零件号

1. Current
2. Trail
。在Oracle SQL中,一个选项如下(第1-6行中的示例数据;查询从第7行开始):

SQL> with test (partno, revision, status) as
  2    (select 501, 1, 'current'  from dual union all
  3     select 501, 2, 'internal' from dual union all
  4     select 502, 1, 'internal' from dual union all
  5     select 502, 2, 'trail'    from dual
  6    )
  7  select partno, revision, status
  8  from (select partno, revision, status,
  9          row_number() over (partition by partno order by revision desc) rn
 10        from test
 11       )
 12  where rn = 1;

    PARTNO   REVISION STATUS
---------- ---------- --------
       501          2 internal
       502          2 trail

SQL>