ホームページ >データベース >mysql チュートリアル >テーブル内の連続するレコード間の時間差を計算するにはどうすればよいですか?
連続レコード間の時間差の計算
このタスクは、StartDate 列を持つテーブル内の隣接する行間の時間差を決定することです。テーブル構造を考慮すると、連続する行の各ペア間の時間的なギャップを計算する必要があります。
1 つのアプローチには、MyTable での自己結合が含まれます。次のクエリはこれを実現します。
SELECT A.requestid, A.starttime, (B.starttime - A.starttime) AS timedifference FROM MyTable A INNER JOIN MyTable B ON B.requestid = (A.requestid + 1) ORDER BY A.requestid ASC
このメソッドは、連続するレコード間の時間差を正常に計算します。ただし、リクエスト ID が連続していない場合は、次のクエリを使用できます。
SELECT A.requestid, A.starttime, (B.starttime - A.starttime) AS timedifference FROM MyTable A CROSS JOIN MyTable B WHERE B.requestid IN (SELECT MIN (C.requestid) FROM MyTable C WHERE C.requestid > A.requestid) ORDER BY A.requestid ASC
CROSS JOIN とサブクエリを利用することで、このアプローチは現在のリクエスト ID より大きい最小のリクエスト ID を特定します。 、連続していないレコードでも時差を計算できます。
以上がテーブル内の連続するレコード間の時間差を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。