본문 바로가기

개발세상/DB query

MySQL 초당 건수 조회, 시간당 데이터별 조회 (통계)

728x90
반응형

MySQL 초당 건수 조회, 시간당 데이터별 조회 (통계)

 

 

 

프로젝트를 진행하다보면 분당 건수 조회할 일이 몇번 있다

말로만 일단 분당이지, 시간별로 각각 뽑아야 하는 경우도 있다

일별/시간별/분당/초당 이런 식으로 많이 나눠질 것이다

그럴 때는 제 포스팅을 참고해서 응용해서 써보시면 될 듯하다

 

많은 데이터들을 가지고 있거나, 유입에 따라서 파악을 해야하는 경우 쓰게 될 것이다

통계 데이터를 뽑아야 한다거나 이럴 때도 유용하게 쓰게 될 것이라 판단된다

 

 

초당 건수로 뽑았을 때
select date_format(일시column, '%Y%m%d%H%i%s') date1 , count(*) as c  from 테이블명
WHERE 일시column between '2020-10-19 08:00' and '2020-10-19 09:00'
group by date(일시column), hour(일시column), minute(일시column), second(일시column)
;

 

각자 추출해야하는 내용의 기준점이 있을 것이다

ex) 10월 18일 부터 10월 19일까지의 데이터 중에 분당 건수 

위의 내 쿼리는 10월 19일 8시부터 9시까지의 초당건수를 기준으로 작성된 것이다

group by를 통해서 통계를 해줬고, 뭐 각 데이터별로 정렬하고 싶으면 order by 하면 될듯

 

결과는 이런 식으로 나왔다. 초당 몇 건 이런식으로 ~

 

초당 기준 다른 컬럼명으로 통계
select * from (
select date_format(일시column, '%Y%m%d%H%i%s') date1 , 다른column, count(*) as c  from 테이블명
WHERE 일시column between '2020-10-19 08:00' and '2020-10-19 09:00'
group by date(일시column), hour(일시column), minute(일시column),  second(일시column), 다른column
) T
order by date1, c
;

 

위에서 초당기준으로 뽑은 데이터들 중에서도 다른 컬럼별로는 어떻게 들어왔는지 보고 싶을때

group by로 다른 column명을 뽑아주고, 그렇게 나온 데이터들을 정렬하기 위해서

한번 더 select * from으로 묶어서 order by 해주었다

그러고 나면 아래와 같은 결과가 나온다

 

초당으로 내가 원하는 다른 column의 데이터별로 정렬해서 볼 수 있다

저기에서 또 건수가 몇개 이상이라던지 조건을 걸어줄 수 있으니 T절 뒤에 where를 걸어주면 된다

그러면 한 층 더 데이터 보기가 편리할 것이다

 

 

SQL, 쿼리 짜는 일은 힘들고도 어렵다.. 공부하면서 잘 남겨보리~

728x90
반응형