시간당 서버에 대한 웹 서비스 호출을 측정하는 분석 도구로 작업해야합니다. 이러한 측정은 데이터베이스에 삽입됩니다.SQL/MySQL 특정 값 이상의 SELECT 및 평균
mysql> SELECT * FROM sample s LIMIT 4;
+---------+------+-------+
| service | hour | calls |
+---------+------+-------+
| WS04 | 04 | 24 |
| WS12 | 11 | 89 |
| WSI64 | 03 | 35 |
| WSX52 | 01 | 25 |
+---------+------+-------+
4 rows in set (0.00 sec)
나는 하루 중 시간에 따라 모든 웹 서비스 완료의 합을 알고 싶습니다 최종 결과 : 다음은 이러한 측정의 조각입니다. 분명히, 이것은 쉽게 의해 SUM()와 그룹으로 수행 할 수 있습니다
mysql> SELECT hour, SUM(calls) FROM sample s GROUP BY hour;
+------+------------+
| hour | SUM(calls) |
+------+------------+
| 00 | 634 |
| 01 | 642 |
| 02 | 633 |
| 03 | 624 |
| 04 | 420 |
| 05 | 479 |
| 06 | 428 |
| 07 | 424 |
| 08 | 473 |
| 09 | 434 |
| 10 | 485 |
| 11 | 567 |
| 12 | 526 |
| 13 | 513 |
| 14 | 555 |
| 15 | 679 |
| 16 | 624 |
| 17 | 796 |
| 18 | 752 |
| 19 | 843 |
| 20 | 827 |
| 21 | 774 |
| 22 | 647 |
| 23 | 533 |
+------+------------+
12 rows in set (0.00 sec)
내 문제는 오래된 세트, 웹 서비스가 이미 요약되었다 [00-11]에서 시간에 호출하는 것입니다. 따라서 위의 간단한 문은
mysql> SELECT hour, SUM(calls) FROM sample s GROUP BY hour;
+------+------------+
| hour | SUM(calls) |
+------+------------+
| 00 | 6243 | <------ sum of hours 00-11!
| 12 | 526 |
| 13 | 513 |
| 14 | 555 |
| 15 | 679 |
| 16 | 624 |
| 17 | 796 |
| 18 | 752 |
| 19 | 843 |
| 20 | 827 |
| 21 | 774 |
| 22 | 647 |
| 23 | 533 |
+------+------------+
13 rows in set (0.00 sec)
으로 이어집니다. 이는 바람직하지 않은 결과입니다. 이전 세트 [00,12, ..., 23]을 새로운 세트 [00,01, ..., 23]와 비교할 수 있도록 [00]의 값을 평균화하고 배포하는 문장을 하나 갖고 싶습니다. 누락 된 시간, 예를 들면 이상 :
+------+------------+
| hour | SUM(calls) |
+------+------------+
| 00 | 6243/11 |
| 01 | 6243/11 |
[...]
| 12 | 526 |
[...]
| 23 | 533 |
+------+------------+
난 쉽게 임시 테이블이나 뷰를 사용하여이 작업을 수행 할 수 있습니다,하지만 난 그들없이이 작업을 수행하는 방법을 모르겠어요.
아이디어가 있으십니까? 왜냐하면 이것이 나를 미치게 만든다. P
이 아마도 당신이 12로 나누어보다는으로 나누어 12시간 00..11을 통해 6243 전화를 배포해야 11. –