2
SQLクエリにCASE式があります。私はケース式に基づいてランクとして新しい列を作成し、ログインの最大日付を持つ行のみを更新したいと思います。ケース式の条件に基づいて行を更新する方法
select A.*,
CASE
WHEN A.COUNT = 1
THEN 'rank1'
-- I want to give the condition here saying update the row
-- which has the latest login date with 'rank1' .. now it is
-- updating all the row which has count as 1
else 'rank2' end as Rank
from table A
上記のコードに条件を追加して、同じ登録内の他の行と比較してカウント1と最新のログイン日を持つ列のみを更新するにはどうすればよいですか?
エンドテーブルは次のようになります。
count regID login rank
1 221 10 april 16 rank1
1 221 9 april 16 rank2
1 221 8 april 16 rank2
1 366 8 march 16 rank2
1 366 1 feb 16 rank2
1 366 22 april 16 rank1
方法を複数追加するとき、その後、上記の条件?これはありがとうございます – rookie
このコードの問題は、行全体から最新の最後のログインをランク1として更新し、残りを無視することだけです。私はregIDベースのランクを更新したい。 reg ID 221には1つのランク1があり、同様に366には別のランク1があります。上記のコードはこのようには見えません。助けてください – rookie
@ルーキー。 。 。その列は 'by by by partition 'に入ります。私は、データを分割するための興味のある唯一の列は 'カウント 'だと考えました。 –