0

以下是样本数据。

Op_ID 手动 TT
------------------
1 0 32
1 1 38.4
2 0 4.56
2 1 7.5
55 1 50
55 1 30
  • 案例 1:我需要检查 Op_id 和手册列,如果手册列有 0,那么我需要取 tt 值 = 32 并忽略以下记录。同样需要检查其他记录。即 op_id=2 和 manual=0 则需要取 tt=4.56。
  • 情况 2:如果两个记录的手动 =1,那么我需要取 tt 的最大值,即 tt=50。(对于 op_id=55)。
所以我需要像下面这样的输出。
Op_ID 手动 TT
------------------
1 0 32
2 0 4.56
55 1 50
4

1 回答 1

1
select opid, manual, tt
from (
  select *, row_number() over (partition by opid order by manual, tt desc) rn
  from yourtable ) v
where rn = 1
于 2013-10-02T05:03:12.273 回答