テーブルを指定すると、レコードグループを選択し、各グループの最後の列Class
を合計しようとしています。グループ化の規則はやや複雑であり、行を相互に比較する必要があります。MySQL以前のグループと比較して値の変化に基づいてレコードグループを選択
|| Seq || Time || Spec || Class
|| 1 || 8:05 || 0 || 5
|| 2 || 8:06 || 1 || 5
|| 3 || 8:07 || 2 ||10
|| 4 || 8:08 || 4 ||10
|| 5 || 8:09 || 3 || 5
|| 6 || 8:10 || 2 || 5
|| 7 || 8:11 || 6 || 5
|| 8 || 8:12 || 6 ||15
私はSpec
列の値の変化(増加または減少)に基づいてレコードをグループ化する必要があります。必要な値の変更は2です。したがって、行1から開始して、Spec
は0
です。行3まで少なくとも2
は増加しません。これは有効なグループであり、Class
フィールドを合計する必要があります。予想される出力はStartTime
,StartSpec
,EndTime
,EndSpec
およびTotalClass
です。
次のグループを決定するには、以前のグループで使用された最後の行の値の変化を測定する必要があります。見て分かるように、行4は直ちに2増加し、この1行は有効なグループです。
予想される出力:
||StartTime || StartSpec || EndTime || EndSpec || TotalClass
|| 8:05 || 0 || 8:07 || 2 || 20
|| 8:08 || 4 || 8:08 || 4 || 10
|| 8:09 || 3 || 8:10 || 2 || 10
|| 8:11 || 6 || 8:11 || 6 || 5
'8:09'行に' spec'値が3の場合、なぜ期待される出力に独自のレコードもありません。 –
使用された最後のレコード(8:08)は4のスペックを持っているので、これを3のスペックを持つ8:09と比較する。 '値の必要な変更は2' –
あなたの数学は私には分かりません。 –