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

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

Susan Sarandon
Susan Sarandonオリジナル
2024-11-28 06:56:17539ブラウズ

How to Calculate Time Differences between Consecutive Rows in a Table?

連続する行間の時間差の計算

StartDate 列を含むテーブルがあり、隣接する 2 つの行間の時間差を計算したいとします。これを実現するには、次の手順に従います。

  1. 自己結合を実装します。 隣接する行を関連付けるには、テーブルで自己結合を実行します。ただし、結合条件が適切であることを確認してください。
  2. 順次リクエスト ID で結合: 連続する行間の時間差を計算するには、連続して 1 ずつ増加するリクエスト ID で結合します。これは、次の結合条件を使用して実現できます: B.requestid = (A.requestid 1).
  3. Calculate Time Difference: 行を結合した後、式 ( B.開始時間 - A.開始時間)。この計算では、現在の行の StartDate から前の行の StartDate が減算され、それらの間の時間差が求められます。

リクエスト 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

このクエリはクロス結合を使用し、現在のリクエスト ID より大きい最小リクエスト ID をサブクエリから選択します。以降は先ほどと同様に時差を計算します。

以上がテーブル内の連続する行間の時間差を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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