ホームページ >データベース >mysql チュートリアル >テーブル内の連続するレコード間の時間差を計算するにはどうすればよいですか?

テーブル内の連続するレコード間の時間差を計算するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-19 16:10:03727ブラウズ

How to Calculate Time Difference Between Consecutive Records in a Table?

連続レコード間の時間差の計算

このタスクは、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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。