検索

ホームページ  >  に質問  >  本文

MySQL 5.7で連続した値の差分を抽出する

###名前### ###日付### ###時間### ###カウント### ###23### 12 ###22### 製粉所製粉所製粉所 ###22### 2022-07-18 ###マイク### 00 ###マイク### 20 ###マイク### ###22### ###マイク### 2022-07-18 ###マイク### 04現在の入力テーブルには、1 時間ごとに継続的に記録されたカウント情報が保存されています。連続したカウント値の差分を抽出する必要があるのですが、MySQL 5.7を使用せざるを得なくなっているため、これができずに困っています。 私が書いたクエリは次のとおりです: リーリー これでは正確な結果が得られません。 次の出力を取得したいと考えています: ###名前### ###日付### ###時間### ###カウント### ###違い### ###23###
製粉所 2022-07-17
製粉所 2022-07-18 00 15
製粉所 2022-07-18 01 20
製粉所 2022-07-18 02
2022-07-18 03 25
2022-07-18 04 20
2022-07-18 05 製粉所
06 25 2022-07-18
15 2022-07-18 01
2022-07-18 02
03 25 2022-07-18
20
製粉所 2022-07-1712 0
製粉所

2022-07-18

00

15

3製粉所 ###22### 2022-07-182022-07-182022-07-18 ###22### 06 ###マイク### 15 ###マイク### 5 ###マイク### ###22### ###マイク### 2022-07-18 ###マイク### 04 ###マイク### ###22### 2 ###マイク### 私に足りないものを提案してください。
製粉所 2022-07-18 01 20 5
2022-07-18 022 製粉所
03 25 3 製粉所
04 20 5 製粉所
052 製粉所 2022-07-18
25 3 2022-07-18 00
0 2022-07-18 01 20
2022-07-18 022
03 25 3 2022-07-18
20 5 2022-07-18 05
2022-07-18 06 25 3
P粉216807924P粉216807924232日前398

全員に返信(2)返信します

  • P粉771233336

    P粉7712333362024-04-02 13:49:18

    次のことを試してください:

    リーリー

    db-fiddle からデモをご覧ください。

    返事
    0
  • P粉569205478

    P粉5692054782024-04-02 11:29:09

    MySQL 5.7 では、変数をインラインで更新して、更新された「Count」値を含めることができます。 「Name」の値が変更された場合は変数をリセットする必要があるため、「Name」の以前の値を含む別の変数を使用できます。次に、IF 関数を使用して次のことを確認します。

    以前の名前と現在の名前が同じ場合
    • 次にカウントの差を計算します
    • それ以外の場合は 0
    • を割り当てます
    • これは

    ABS 関数で動作し、差に絶対値を適用します。 リーリー デモは

    こちら

    をご覧ください。

    MySQL 8.0
    では、

    LAG のようなものを使用して出力をスムーズに取得できます。これは次と同じになります:

    をご覧ください。

    返事
    0
  • キャンセル返事