死亡に関する健康データがあります。個人は最大1回死亡する必要があります。データベースでは、そうでない場合があります。おそらく、死因が変更されたが、元のエントリが削除されなかったためです。これがどのように許可されたのかはよくわかりませんが、そうなりました。したがって、構成例として、私は次のようにしています。
Row_number | Individual_ID | Cause_of_death | Date_of_death
------------+---------------+-----------------------+---------------
1 | 1 | Stroke | 3 march 2008
2 | 2 | Myocardial infarction | 1 jan 2009
3 | 2 | Pulmonary Embolus | 1 jan 2009
私は、一人一人の死因を 1 つだけにしたいと考えています。
この例では、行 1 と、行 2 または行 3 のいずれか (両方ではない) を返すクエリが必要です。行 2 と行 3 の間で任意の選択を行う必要があります。これは、どちらがリビジョンであるかを判断するために使用できるタイムスタンプがどのフィールドにもないためです。理想的ではありませんが、避けられません。
これを行うためにSQLを機能させることはできません。個別の Individual_ID を他のフィールドに内部結合しようとしましたが、それでもすべての行が得られます。「having count(Individual_ID) = 1」句を追加してみました。これにより、死因が複数ある人は完全に除外されます。インターネット上の提案は、タイムスタンプ付きフィールドを使用して最新のものを選択することに基づいているようですが、私はそれを持っていません.
IBM DB2。WindowsXP. どんな考えもありがたく受け取った。