>데이터 베이스 >MySQL 튜토리얼 >미리 정의된 간격으로 MySQL에서 히스토그램을 만드는 방법은 무엇입니까?

미리 정의된 간격으로 MySQL에서 히스토그램을 만드는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-26 17:47:02698검색

How to Create Histograms in MySQL with Predefined Intervals?

MySQL의 히스토그램 데이터 추출

MySQL은 기본적으로 히스토그램 플로팅을 위해 사전 정의된 간격으로 데이터를 비닝하는 기능을 제한적으로 지원합니다. 그러나 이 작업은 수정된 접근 방식을 사용하여 달성할 수 있습니다.

제공한 SQL 쿼리:

select total, count(total) from faults GROUP BY total;

과도한 수의 행을 생성합니다. 데이터를 사전 정의된 저장소로 그룹화하려면 다음 해결 방법을 고려할 수 있습니다.

ROUND(numeric_value, -2) AS bucket,

   COUNT(*)                    AS COUNT,
   RPAD('', LN(COUNT(*)), '*') AS bar

FROM my_table
GROUP BY bucket;

ROUNDing 증분을 조정하여 Bin 크기를 정의할 수 있습니다. 예를 들어 ROUND(숫자_값, -2)는 데이터를 100 버킷(-200~-100, -100~0 등)으로 그룹화합니다.

ROUNDing 작업에서 오프셋을 수정하면 첫 번째 버킷이 후속 버킷만큼 많은 요소를 포함합니다. ROUND(numeric_value, -1)의 경우 [0,4] 범위(5개 요소)의 숫자_값은 첫 번째 버킷에 배치되고, 두 번째 버킷에는 [5,14](10개 요소), 셋째, 숫자_값이 ROUND(숫자_값 - 5, -1)를 통해 적절하게 오프셋되지 않는 한.

예를 들어 다음 쿼리는 로그 막대 크기 조정을 사용하여 히스토그램을 생성합니다.

SELECT ROUND(total, -2)    AS bucket,
       COUNT(*)                    AS COUNT,
       RPAD('', LN(COUNT(*)), '*') AS bar
FROM   faults
GROUP  BY bucket;

이 접근 방식은 다음과 같습니다. MySQL에서 히스토그램을 생성하는 빠르고 적응 가능한 방법을 제공하므로 특정 사용 사례에 맞게 쉽게 사용자 정의할 수 있습니다.

위 내용은 미리 정의된 간격으로 MySQL에서 히스토그램을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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