给定一个这样的数据集;GROUP BY ID范围?
+-----+---------------------+--------+
| 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天记录的分组结果。上述结果是实时数据的一部分,表中有超过10万个结果行,并且它在不断增长。基本上我想测量随着时间的变化,所以想要每个X记录取得结果的总和。在真实数据中,我会做到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结果的数据分开。假设没有空白行是安全的。
用你可以做的多个数据做以上操作选择like;
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 ...但我可以忍受。 的mysql> SELECT - >地板(ID/1000)YM, - > COUNT(结果) '总游戏', - > SUM(结果)为 '分数' - >从nn_log - > GROUP BY YM ; + ------ + ------------- + ------- + | ym |总游戏|分数| + ------ + ------------- + ------- + | 0 | 999 | -879 | | 1 | 1000 | -889 | | 2 | 1000 | -920 | | 3 | 1000 | -903 | .... – 2009-07-11 15:13:49