>데이터 베이스 >MySQL 튜토리얼 >MySQL을 사용하여 시계열 데이터를 사용자 정의 세그먼트로 그룹화하려면 어떻게 해야 합니까?

MySQL을 사용하여 시계열 데이터를 사용자 정의 세그먼트로 그룹화하려면 어떻게 해야 합니까?

DDD
DDD원래의
2025-01-04 12:07:36696검색

How Can I Group Time Series Data into Custom Segments Using MySQL?

시계열 데이터를 세그먼트로 그룹화

정기적으로 샘플링된 시계열 데이터로 작업할 때 특정 기간 동안 데이터를 집계해야 하는 경우가 많습니다. 시간 세그먼트. 이를 통해 데이터 분석가와 엔지니어는 보다 의미 있는 방식으로 데이터 추세와 패턴에 대한 통찰력을 얻을 수 있습니다.

예를 들어 2초마다 샘플을 수집하는 테이블을 생각해 보세요. 장기간에 걸쳐 개수 값의 변화를 분석하려면 샘플을 10초 또는 30초 창으로 그룹화할 수 있습니다. 각 세그먼트 내의 카운트 값을 합산하거나 평균화하면 개별 시점을 볼 때 모호할 수 있는 패턴을 관찰할 수 있습니다.

세그먼트를 위한 MySQL 쿼리

이를 달성하려면 MySQL의 데이터 분할에서는 time_stamp 열에 대한 산술 연산과 함께 GROUP BY 절을 활용할 수 있습니다. 각 샘플의 UNIX 타임스탬프를 원하는 간격으로 나누어 시간 차이에 따라 샘플을 세그먼트로 그룹화할 수 있습니다.

샘플을 30초 세그먼트로 그룹화하려면 다음 쿼리를 고려하세요.

GROUP BY UNIX_TIMESTAMP(time_stamp) DIV 30

이 쿼리는 데이터의 시간 범위 내에서 30초 간격으로 그룹을 생성합니다.

사용자 정의 세그먼트 경계

GROUP BY 절 내의 r 표현식을 사용하여 간격 경계를 추가로 사용자 정의할 수 있습니다. 나누기 전에 UNIX 타임스탬프에 양의 정수 값 r을 추가하면 세그먼트 경계를 이동할 수 있습니다.

예를 들어 hh:mm:05에서 시작하여 hh:mm 1에서 끝나는 20초 세그먼트를 생성하려면 :05:

GROUP BY (UNIX_TIMESTAMP(time_stamp) + 5) DIV 30

이 쿼리는 샘플을 20초 세그먼트로 그룹화합니다. 첫 번째 세그먼트는 hh:mm:05에서 시작하고 마지막 세그먼트는 다음에서 끝납니다. hh:mm 1:05.

위 내용은 MySQL을 사용하여 시계열 데이터를 사용자 정의 세그먼트로 그룹화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.