以下のように表示されます。
表 a の列 a1 と a2 を加算して新しい列 a を作成し、列 a1 と a2 を乗算して新しい列 b を作成します。注: 除算を行う場合は型変換を行う必要があります。そうしないと結果は 0 になります。
これは 2 つの異なるテーブルの列間の操作です。 補足知識:異なるレコード内の同じ属性列の差を計算するSQL文 使用されるテーブルの具体的な構造は下の図に示すとおりです。 テーブルの主キーは (plateNumber+currentTime) です。 実装するクエリは次のとおりです。 ナンバープレート番号とクエリ時間間隔を指定して、指定された時間間隔に含まれるレコードの currentTime の差をクエリし、AverageSpeed と差の積を計算し、この期間中の最高速度 (HighestSpeed) を見つけて、それを異なるタイプの値に従って分割します。 –>(型値は0と1の2つの値のみを持ちます) 主なアイデアは、まず、指定された時間間隔内で同じ種類の同じナンバープレート番号(つまり、同じ車両)の currentTime の差、たとえば currentTime でソートされた 2 つの隣接するレコードの currentTime の差を取得できることです。これが取得されたら、残りは集計関数を通じて取得できます。 ナンバープレートの番号「京A111111」を例にとり、下の図に示すようにテストケースを設計します。 ナンバープレート番号「京A111111」の車両には6件の記録があり、そのうちタイプ0の記録が2件、タイプ1の記録が4件あることがわかります。 まず時間差を計算し、SQL ステートメントは次のように記述されます。 SELECT a.platenumber、 a.現在の時刻、 a.タイプ、 a.平均速度、 a.最高速度、 現在の時刻 - (現在の時刻を選択 carmultispeedinfoより ここで、プレート番号 = a.プレート番号 AND タイプ = a.type AND 現在の時刻 < a.現在の時刻 ORDER BY 現在の時刻 DESC 制限 1)AS 時間差 carmultispeedinfoより Navicat を使用すると、次の図に示すようにクエリ結果を確認できます。 timediff の値が正しいことを確認してから、それに基づいてコンテンツを追加できます。 完全な SQL ステートメントは次のとおりです。 SELECT Sum(aa.averagespeed * aa.timediff) AS milesdiff、 Max(aa.highestspeed) AS 最高速度、 合計(aa.timediff) AS timediff、 aa.タイプ FROM (SELECT a.platenumber, a.現在の時刻、 a.タイプ、 a.平均速度、 a.最高速度、 現在の時刻 - (現在の時刻を選択 carmultispeedinfoより ここで、プレート番号 = a.プレート番号 AND タイプ = a.type AND 現在の時刻 < a.現在の時刻 ORDER BY 現在の時刻 DESC 制限 1) AS 時間差 carmultispeedinfoより a)aa ここで、aa.platenumber = '京A111111' かつ、aa.currenttime >= 1521790124670 かつ、aa.currenttime <= 1521790125685 GROUP BY aa.type 結果は次のとおりです。 確認後、希望通りの結果が得られました。次に、mybatis マッパー ファイルに対応する SQL を置き換えます。 <記録、メモ> 今後、理解が深まったら更新していきます。皆様、ありがとうございます、参考になれば幸いです、そして123WORDPRESS.COMを応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: Windows 10 で Hyper-V サービスをシャットダウンするいくつかの方法
この記事では、例を使用して、MySQL で更新可能なビューを作成する方法について説明します。ご参考ま...
序文スタンドアロン ロックであっても分散ロックであっても、共有データに基づいて現在の操作の動作を判断...
コードをコピーコードは次のとおりです。 html {オーバーフロー: 非表示; }体{オーバーフロー...
公式サイトの説明: コンポーネントを定義する場合、コンポーネントは複数のインスタンスを作成するために...
MySql での時間比較の実装unix_timestamp() unix_timestamp 関数は...
Linux環境変数の設定ソフトウェアのインストールをカスタマイズする場合、多くの場合、環境変数を設定...
この記事では、ネイティブ JS によって実装された動的読み込みプログレス バーの特殊効果を紹介します...
1. ファイアウォールの基本的な使い方起動する: systemctl は、firewalld を起動...
目次1. 親コンポーネントと子コンポーネント2. テンプレート分離書き込み1. テンプレートタグ2....
以下の HTML タグには、基本的に既存のタグがすべて含まれています。数分かけて 1 つずつ参照する...
1. Vimの公式ウェブサイトにアクセスして、オペレーティングシステムに適した実行ファイルをダウンロ...
Elasticsearch 6.8 以降、無料ユーザーは X-Pack のセキュリティ機能を使用でき...
Linux は一般的にサーバーとして使用され、サーバーは一般的にコンピュータルーム内に置かれます。L...
目次変数のスコープ閉鎖の概念クロージャの使用クロージャのデメリット最後に、クロージャのメリットとデメ...
データをコピーリモートでデータをコピーする場合、通常は rsync コマンドを使用しますが、小さなフ...