増分値が0.25を超える場合、範囲が葯から分離されている場合、ポイントテーブルから使用可能な範囲を見つけるにはどうすればよいですか(範囲テーブルを生成したいポイントテーブルがあります)
POINTS table
+----+------+------+------------+
| id | sph | cyl | othertbl_id|
+----+------+------+------------+
| 1 | 0 | 0 | 1 |
| 2 | 0 | 0.25 | 1 |
| 3 | 0 | 0.50 | 1 |
| 4 | 0 | 1.00 | 1 |
| 5 | 0.25 | 0 | 1 |
| 6 | 0.25 | 0.25 | 1 |
| 7 | 0.25 | 0.50 | 1 |
| 8 | 0.25 | 1.00 | 1 |
| 9 | 3.25 | 0 | 1 |
| 10 | 3.25 | 0.25 | 1 |
| 11 | 3.50 | 0 | 1 |
| 12 | 3.50 | 0.25 | 1 |
| 13 | 3.75 | 0 | 1 |
| 14 | 3.75 | 0.25 | 1 |
+----+-------------+------------+
このような範囲テーブルを生成したい
+----+----------+----------+----------+----------+------------+
| id | min_sph | max_sph | min_cyl | max_cyl |othertbl_id |
+----+----------+----------+----------+----------+------------+
| 1 | 0 | 0.25 | 0 | 1.00 | 1 |
| 2 | 3.25 | 3.75 | 0 | 0.25 | 1 |
+----+----------+----------+----------+----------+------------+
これをより理解しやすくするための同様のケースシナリオ
前に生成した範囲テーブルは、私が望む結果です。othertbl が製品テーブルであり、各製品がポイントの各範囲で異なる在庫数を持っているとしましょう。T シャツ A が年齢 0 ~ 2、身長 30 ~ で利用可能であるとしましょう。これらの範囲のすべてのポイントは、同じ T シャツの列に対するものです。年齢差が 1 年以上ある場合、または身長差が 10 を超える場合は、新しい範囲と見なされます
この場合、ポイント テーブルは次のようになります。
+----+------+------+------------+
| id | age | hgt | othertbl_id|
+----+------+------+------------+
| 1 | 0 | 30 | 1 |
| 2 | 0 | 40 | 1 |
| 3 | 0 | 50 | 1 |
| 4 | 1 | 30 | 1 |
| 5 | 1 | 40 | 1 |
| 6 | 1 | 50 | 1 |
| 7 | 2 | 30 | 1 |
| 8 | 2 | 40 | 1 |
| 9 | 2 | 50 | 1 |
| 10 | 28 | 100 | 1 |
| 11 | 28 | 110 | 1 |
| 12 | 28 | 120 | 1 |
| 13 | 29 | 100 | 1 |
| 14 | 29 | 110 | 1 |
| 14 | 29 | 120 | 1 |
| 14 | 30 | 100 | 1 |
| 14 | 30 | 110 | 1 |
| 14 | 30 | 120 | 1 |
+----+-------------+------------+
そして、範囲テーブルは次のようになります
+----+----------+----------+----------+----------+------------+
| id | min_age | max_age | min_hgt | max_hgt |othertbl_id |
+----+----------+----------+----------+----------+------------+
| 1 | 0 | 2 | 30 | 50 | 1 |
| 2 | 28 | 30 | 100 | 120 | 1 |
+----+----------+----------+----------+----------+------------+