단일 DATETIME 필드가 주어지면 몇 가지 솔루션이 시간별로 그룹화 된 것으로 나타났습니다. 필자의 경우 DATETIME 범위를 사용하여 결과를 시간별로 그룹화하고 개수를 구해야합니다.주어진 시간 범위에 대해 시간 단위로 그룹화
아래 테이블 구조를 설명하려고합니다. 내 데이터 표는 다음과 같습니다.
mysql> select * from access_logger;
+---------+---------------------+---------------------+
| user_id | entered_at | exit_at |
+---------+---------------------+---------------------+
| 20178 | 2017-09-11 07:02:35 | 2017-09-11 10:10:09 |
| 18998 | 2017-09-11 08:02:35 | 2017-09-11 08:41:45 |
| 6754 | 2017-09-11 08:02:35 | 2017-09-11 12:06:42 |
| 18998 | 2017-09-11 09:02:35 | 2017-09-11 13:30:43 |
| // results continues.... |
+---------+---------------------+---------------------+
위의 테이블 구조를 기반으로 나는 매 시간마다 얼마나 많은 사용자가 시스템에 연결되었는지보고 싶습니다. 예상 결과는 다음과 같습니다.
각 시간에 대한 결과를 독립적으로 가져 오는 쿼리를 만들었습니다.
mysql> select "10" as hours, count(user_id) as count
-> from access_logger
-> where hour(entered_at) <=10 and hour(exit_at) >= 10;
+------+-------+
|hours | count |
+------+-------+
| 10 | 3 |
+------+--------
위의 쿼리는 단 한 시간 그룹에 대한 출력을 얻습니다. 24 개의 행에 24 시간 동안 출력을 생성하는 쿼리를 작성하려면 어떻게해야합니까?
테스트되지 않는 이유는 무엇입니까? – Ravi
기본적으로 결과에 날짜가 필요 없으며 사용자가 지정된 시간 내에 있는지 확인해야합니다. – BlueBird
mysql이 – zarruq