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, 쿼리 짜는 일은 힘들고도 어렵다.. 공부하면서 잘 남겨보리~
'개발세상 > DB query' 카테고리의 다른 글
MSSQL 프로시저 생성시간, 수정시간이 궁금할 때 (0) | 2023.08.10 |
---|---|
SQL : 중복 데이터, 중복값 찾는 쿼리 (0) | 2022.09.25 |