このようなデータセットがあれば、ID範囲のGROUP BY?
+-----+---------------------+--------+
| id | date | result |
+-----+---------------------+--------+
| 121 | 2009-07-11 13:23:24 | -1 |
| 122 | 2009-07-11 13:23:24 | -1 |
| 123 | 2009-07-11 13:23:24 | -1 |
| 124 | 2009-07-11 13:23:24 | -1 |
| 125 | 2009-07-11 13:23:24 | -1 |
| 126 | 2009-07-11 13:23:24 | -1 |
| 127 | 2009-07-11 13:23:24 | -1 |
| 128 | 2009-07-11 13:23:24 | -1 |
| 129 | 2009-07-11 13:23:24 | -1 |
| 130 | 2009-07-11 13:23:24 | -1 |
| 131 | 2009-07-11 13:23:24 | -1 |
| 132 | 2009-07-11 13:23:24 | -1 |
| 133 | 2009-07-11 13:23:24 | -1 |
| 134 | 2009-07-11 13:23:24 | -1 |
| 135 | 2009-07-11 13:23:24 | -1 |
| 136 | 2009-07-11 13:23:24 | -1 |
| 137 | 2009-07-11 13:23:24 | -1 |
| 138 | 2009-07-11 13:23:24 | 1 |
| 139 | 2009-07-11 13:23:24 | 0 |
| 140 | 2009-07-11 13:23:24 | -1 |
+-----+---------------------+--------+
一度に5つのレコードで結果をグループ化する方法を教えてください。上記の結果はライブデータの一部です。テーブルには100,000を超える結果行があり、その結果は大きくなっています。基本的には、時間の経過とともに変化を測定したいので、Xレコードごとに結果のSUMを取りたいと思っています。実際のデータでは、私はこれまでに100または1000を実行していますが、おそらく5以上のデータについてはそうです。
私はこれを日付でソートすることができます。
SELECT
DATE_FORMAT(date, '%h%i') ym,
COUNT(result) 'Total Games',
SUM(result) as 'Score'
FROM nn_log
GROUP BY ym;
数字と似たようなことをする方法がわかりません。順序は日付でソートされますが、xの結果ごとにデータを分割したいと考えています。空白行がないと仮定することは安全です。あなたのような複数の選択を行うことができ、データを持つ上に、それをやって
。
SELECT SUM(result) FROM table LIMIT 0,5;
SELECT SUM(result) FROM table LIMIT 5,5;
SELECT SUM(result) FROM table LIMIT 10,5;
これは明らかに大きな問題にスケールアップするための非常に良い方法ではありません。私はループを書くことができますが、クエリの数を減らしたいと思います。
完全に感謝します。興味深いことにそれをやって は私の最初のもののための唯一の999を与えた...しかし、私はそれと一緒に暮らすことができます。 >床(ID/1000)YM、 - - > COUNT(結果)「総Gamesの、 - 'スコア' として> SUM(結果) - MySQLの> をSELECT> nn_log FROM - YM BY> GROUP ; + ------ + ------------- + ------- + | ym |トータルゲーム|スコア| + ------ + ------------- + ------- + | 0 | 999 | -879 | | 1 | 1000 | -889 | | 2 | 1000 | -920 | | 3 | 1000 | -903 | .... –
書式設定に失敗しました –