次のようなデータを含むOracleテーブルがあります。
ID | ステータス| 時間 ------------------------------- 1 | IN | 2013/26/03 00:00 1 | アウト| 2013/26/03 07:00 1 | IN | 2013/27/03 03:00 2 | IN | 2013/26/03 01:00 2 | アウト| 2013/26/03 06:00 3 | IN | 2013/26/03 01:30 。 。
STATUSはチェックインとチェックアウトを表し、IDは個人を表します。
サブクエリを使用してクエリを作成しましたが、エレガントで非効率的なようです。各IDの経過時間(IN-> OUT)を計算するために、単一のクエリ(サブクエリがないことを意味する)を作成することは可能ですか?
更新:また、個人がOUTである経過時間を表示することは可能ですか?たとえば、上記のデータでは、個人#1は7時間INですが、20時間OUTです(2013/27/03 03:00-2013 / 26/03 07:00)。これはレコード全体で計算されるため、これをどのように書き込むことができるかわかりません。