SQL JOIN を使用して連続する行間の時間差を計算する
データ分析の領域では、連続する行間の時間差を計算すると、貴重な情報が得られます。洞察。たとえば、StartDate という名前の列を含むテーブルで、イベント期間をキャプチャしたり、パターンを識別したりするために、連続するレコード間の経過時間を判断したい場合があります。この目的を達成するには、1 つのアプローチとして自己結合を利用します。手術。このコンテキストでは、ROW_NUMBER() 関数または同様のランキング メカニズムを使用して、隣接するレコードを識別できます。ただし、join ステートメントで ON 句を使用するより効率的な解決策が存在します。次の例を考えてみましょう:<p>SELECT A.requestid, A.starttime, ( B.starttime - A.starttime) AS timedifference<br>FROM MyTable A INNER JOIN MyTable B ON B.requestid = A.requestid 1<br>ORDER BY A.requestid ASC<br>
requestId | starttime |
---|---|
1 | 2011-10-16 13:15:56 |
2 | 2011-10-16 13:15:59 |
3 | 2011-10-16 13:15:59 |
4 | 2011-10-16 13:16:02 |
5 | 2011-10-16 13:18:07 |
requestId | starttime | timedifference |
---|---|---|
1 | 2011-10-16 13:15:56 | 00:00:03 |
2 | 2011-10-16 13:15:59 | 00:00:00 |
3 | 2011-10-16 13:15:59 | 00:00:03 |
4 | 2011-10-16 13:16:02 | 00:00:03 |
<p>SELECT A.requestid, A.starttime, (B.starttime - A.starttime) AS timedifference<br>FROM MyTable A CROSS JOIN MyTable B<br>WHERE B.requestid IN (SELECT MIN(C.requestid) FROM MyTable C WHERE C.requestid > A.requestid)<br>ORDER BY A.requestid ASC<br>
これらの SQL テクニックを利用すると、データ テーブル内の連続する行間の時間差を効果的に計算でき、データ分析と分析に役立ちます。解釈。
以上がSQLで連続する行間の時間差を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。