ホームページ  >  に質問  >  本文

SQL での異なる粒度のフラグ

私はまだ SQL の使用方法を学んでいるので、私が尋ねている質問は、一部の人にとっては簡単かもしれないことをお伝えしたいと思います。

SAMPLE という列と BATCH という列があるとします。さらに、BATCH には SAMPLE が含まれており、何らかの理由で SAMPLE 列 (SAMPLE_FLG) にリンクされたタグがあります。

BATLCH_FLG は、バッチに含まれる少なくとも 1 つのサンプルが 1 としてマークされていることを示すために使用されます。

このシナリオは、このサンプル画像または以下の表で視覚化できます:

リーリー

SQL クエリを使用して BATCH_FLG 列の各バッチに 1 を取得するにはどうすればよいですか? つまり、バッチごとに 1 というラベルが付けられたサンプルが複数ある場合でも、1 を複数回使用すべきではないということです (サンプル画像の最後の 3 行)。

BATCH_FLG 列内の 1 の位置は重要ではありません。

助けていただければ幸いです。 ありがとう。

P粉824889650P粉824889650236日前274

全員に返信(1)返信します

  • P粉420958692

    P粉4209586922024-02-26 00:52:28

    ROW_NUMBER() を使用すると、必要な結果を生成できます。例えば:###

    t.*を選択してください、 row_number() over(サンプルごとのバッチオーダーによる分割) = 1の場合 then 1 else 0 バッチ_flg として終了 t
    から

    返事
    0
  • キャンセル返事