이와 같은 데이터 세트가 제공됩니다.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 개 레코드로 결과를 그룹화하는 방법은 어떻게됩니까? 위의 결과는 실제 데이터의 일부이며 테이블에 증가하는 행 수가 100,000 개를 넘습니다. 기본적으로 나는 시간 경과에 따른 변화를 측정하고자하므로 모든 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 결과에 데이터를 분할하려고합니다. 빈 행이 없다고 가정하는 것이 안전합니다.
위와 같이 할 수있는 데이터를 여러 개 선택하는 것은 다음과 같이 선택합니다.
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 (결과) '전체 게임', - '점수'로> SUM (결과) - MySQL의> 선택> nn_log FROM - YM BY> GROUP ; + ------ + ------------- + ------- + | ym | 총 게임 | 점수 | + ------ + ------------- + ------- + | 0 | 999 | -879 | | 1 | 1000 | -889 | | 2 | 1000 | -920 | | 3 | 1000 | -903 | .... –
오 - 서식 오류가 발생했습니다. –