テーブル内のサブグループのシーケンス番号を増やしたいのですが、サブグループが存在しない場合、シーケンスは 1 から開始する必要があります。
たとえば、次の例では、テーブルにclass=5
;のレコードが存在しない場合、シーケンスを 1 に設定します。そのようなレコードが存在する場合、 sequence は値 max sequence (サブグループ内class=5
) + 1を取る必要があります。
update order set class=5, sequence=(select max(sequence) from order
where class=5)+1 where order_id=104;
問題は、上記が最初のケースでは機能しないことです。