最初の 10 レコードで 5 つ以上の連続したレコードを特定する必要がある状況があります。以下に2つの例を示します。
例 1 以下のとおり
SL User Number Frequency
1 aaa 9.95 1
2 aaa 9.85 1
3 aaa 9.75 1
4 aaa 9.65 1
5 aaa 9.55 1
6 aaa 9.45 1
7 xxxx 9.35 1
8 bbbb 9.25 1
9 cccc 9.15 1
レコード 5 と 6 (ユーザー aaa に属し、頻度を 1 ではなく 2 として更新する番号 9.55 と 9.45) を取得できるクエリが必要です。
例 2 次のように
SL User Number Frequency
1 xxxx 9.95 1
2 aaa 9.85 1
3 aaa 9.75 1
4 aaa 9.65 1
5 aaa 9.55 1
6 aaa 9.45 1
7 xxxx 9.35 1
8 bbbb 9.25 1
9 cccc 9.15 1
クエリは、レコード 6 (ユーザー aaa に属し、頻度を 1 ではなく 2 に更新する番号 9.45) のみを取得する必要があります。
クエリは、ユーザーの上位 9 位のどこかに 5 つ以上の連続したレコードが表示されるレコードを選択し、4 位以降の位置の頻度を 2 としてマークする必要があります。
制約: このクエリは、PHP の ajax を介して 2 秒ごとに実行されます。したがって、多くのCPUを使用する複雑な結合/結合クエリは本当に必要ありません。2つ以上の小さなクエリに分割することでphpでこれを行うオプションがありますが、CPUまたはデータベースをロードしない単一のクエリを好みます。単一のクエリが CPU をロードする可能性が高い場合、php で処理が行われるため、2 ~ 3 つのクエリで問題ありません。
これを達成する方法を教えてください。