これはまっすぐだと思われますが、わかりにくいです。私はグループ内のレコード(group_id)を比較しているテーブルを持っています。私は私の記録に、私の研究に関係する特定の基準に基づく旗を掲げました。私が見る必要がある約10のフラグがあります。グループ内では、1つのレコードのみがフラグされる場合もあります。それ以外の場合は、両方のレコードにフラグが立てられます。基準に基づいてグループ内で「パーティションバイ」を行うにはどうすればよいですか?
私が今したいのは、各フラグ指定の日付に基づいてgroup_idを分割することです。私は見たい3つの期間があります:2016年、2010年-2015年、2010年以前、両方の記録が同じです。これらは、日付型データとして設定されていない私の 'file_date'フィールドに反映されます。代わりに、彼らはabcsum(夏)とabcwin(冬)を指定しています。場合によっては、このフィールドはnullです。
私がしたいのは、パーティションの「勝者」がそれらの日付基準のどれに適合したかに基づいて別のフラグを作成することです。基準の重要性は、最新のものから最近のものまでです。ここで私はさらにそれを説明することを願っていますいくつかのサンプルデータは、次のとおりです。
------------------------------
|group_id | file_date | flag |
-------------------------------
| a | abcsum16 | 3 |
| a | abcwin16 | |
| b | null | 4 |
| b | abcsum15 | 4 |
| c | abcwin16 | 7 |
| c | abcwin16 | 7 |
| d | abcsum09 | 3 |
| d | null | |
-------------------------------
出力は次のようになります。
|group_id | file_date | flag | date_flag |
--------------------------------------------
| a | abcsum16 | 3 | 1 |
| b | abcsum15 | 4 | 2 |
| c | abcwin16 | 7 | 0 |
| c | abcwin16 | 7 | 0 |
| d | abcsum09 | 3 | 3 |
-------------------------------------------
これは不明です。どのようにしてdate_flagに値(0,1,2,3)を割り当てましたか? (2016年、2010年-2016年、そして2009年まで)3つの "クラス"がありますが、 "どちらのレコードも同じです"とはどういうことでしょうか?また、date_flagにはどのような影響がありますか?出力から? – mathguy
残念ですが、日付フラグは次の通りです:1 = 2016年、2 = 2010年と2015年、3は2010年です;場合によっては、同じ 'file_date'の両方のレコードがあります。 2つの日付を区別することができないので、0を取るものです。なぜなら、私がnullフィールドを含まない理由は、それらを使うことができないからです、彼らがnullであることを示す異なるフラグコードをとることができると思います。 – user7002207