SQLは、隣接する2行のデータに対して加算、減算、乗算、除算の演算を実行します。

SQLは、隣接する2行のデータに対して加算、減算、乗算、除算の演算を実行します。

SQL は、データを特定の順序で並べ替え、特定のフィールドでグループ化した後、隣接する 2 つのデータ行に対して加算、減算、乗算、除算の演算を実行します。

アイデア:

1: まずテーブルデータをグループ化して並べ替え、シリアル番号でラベル付けします

2: 必要に応じてタグフィールドに1を加算/減算する

上記のコード:

個別の a.phone、from_unixtime(cast(floor(a.ts/1000) as bigint)、'yyyyMMdd HH:mm:ss'、cha を選択します。
表Aより
参加する 
(
 a.phone、a.ts、abs(a.ts-b.ts)/1000 cha を選択
 (電話、ts、row_number() を選択、(電話でパーティション、ts で順序付け)テーブルから順位付け)から
 左結合
 ( select phone,ts,rank-1 as rank from (select phone,ts,row_number() over(partition by phone order by ts ) rank from table) a ) b
 a.phone = b.phone かつ a.rank = b.rank の場合
)b
a.phone = b.phone かつ a.ts = b.ts の場合
ここで、a.phone は null ではなく、a.phone<>'';

表のデータは次のとおりです。

最初の列は電話、2番目の列は時間tsであり、同じ電話の2つの隣接するデータにかかる時間を計算する必要があります。

結果は以下のようになります。

3 列目は秒単位です。

補足知識: SQLは現在の行を前の2行のデータの合計と等しく実装します

SQL はフィボナッチ数列に似た関数を実装します。つまり、現在のデータは前の 2 つのデータの合計に等しくなります。詳細については、この記事の例を参照してください。

元のテーブル:

SQL ステートメント(ここでは JION ON の使い方をよく理解してください)

結果

隣接する2行のデータの加算、減算、乗算、除算を実行する上記のSQLは、エディターが皆さんと共有する内容のすべてです。皆さんの参考になれば幸いです。また、123WORDPRESS.COMを応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL データテーブルのパーティション戦略と利点と欠点の分析
  • 列の隣接する2つの行の差を計算するMySQLメソッド
  • MySqlで隣接データを取得する方法

<<:  Dockerイメージを素早くデプロイして実行する最新のIDEAプロセスの詳細な説明

>>:  Vue3 手動カプセル化ポップアップ ボックス コンポーネント メッセージ メソッド

推薦する

Linux に nginx をインストールする方法

Nginx は C 言語で開発されており、Linux で実行することをお勧めします。もちろん、Win...

Vue+thinkphp5.1+axiosでファイルアップロードを実現

この記事では、thinkphp5.1 + Vue+axiosを使用してファイルをアップロードする方法...

純粋な CSS3+DIV で小さな三角形の境界線効果を実現するためのサンプル コード

具体的なコードは次のとおりです。 HTMLコードは次のとおりです <div class=&qu...

MySQLはJSON内部フィールドを抽出し、数値としてダンプします

目次背景問題分析1. 属性値はJson形式であり、Json操作関数を使用して処理する必要があります。...

JSはclip-pathを使用して動的領域クリッピング機能を実装します

背景今日、CodePen を閲覧していたところ、非常に興味深い効果を見つけました。 CodePen ...

フロントエンドフレームワーク Vue における親子コンポーネントデータの双方向バインディングの実装

目次1. 親コンポーネントと子コンポーネント間の一方向の値転送1. 親から子への値の受け渡し2. 子...

Reactコンポーネントをフルスクリーンにする方法

導入この記事は、 React + antdをベースにして、完全な全屏demoを紹介します。その理由は...

HTML コード例: ハイパーリンクの詳細な説明

ハイパーリンクは、Web サイト上のすべてのページがハイパーリンクで接続され、ページ間を移動できるた...

Dockerボリュームコンテナ間のデータ共有の実装

ボリュームとは何ですか?ボリュームは英語で容量を意味し、Docker ではデータ ボリューム、つまり...

ライフゲームの JavaScript 実装

目次コンセプト紹介論理的ルール完全なコード主な実装コンセプト紹介セルオートマトンとは、コンピュータの...

MySQL 時間差関数 (TIMESTAMPDIFF、DATEDIFF)、日付変換計算関数 (date_add、day、date_format、str_to_date)

1. 時間差関数(TIMESTAMPDIFF、DATEDIFF) MySQLを使用して時間差を計算...

elementui での el-cascader カスケードセレクタの実践

目次1. 効果2. メインコード1. 効果機能: インターフェイスから取得したデータを使用してオプシ...

Linux での MySQL 8.0 インストール チュートリアル

この記事では、LinuxでMySQL 8.0をインストールする方法を紹介します。具体的な内容は次のと...

ReactのPropsの簡単な比較

目次クラスコンポーネントのプロパティ比較浅い同等の浅い比較機能コンポーネントの簡単な比較先週面接に行...

MySQLマスタースレーブデータベース構築方法の詳細な説明

この記事では、MySQL マスター/スレーブ データベースの構築方法について説明します。ご参考までに...