반응형
데이터를 통합하여 MariaDB의 다양한 값 수를 줄이려면 어떻게 해야 합니까?
1초에 1개의 기록이 있는 풍속 데이터를 가지고 있습니다.데이터의 95% 이상이 0.36m/s의 배수라는 것을 알게 되었습니다(스크린샷 풍속 참조). 이는 계측기가 구성된 방식(아직 작동 중)의 결과입니다.
제가 하고 싶은 것은 모든 값을 0.36의 배수로 반올림하여 확률 밀도 시각적으로 생성할 수 있도록 하는 것입니다.
스크린샷의 표는 다음 코드에서 가져온 것입니다.
WITH freqCTE AS
(
SELECT rd.wind_speed,
COUNT(rd.wind_speed) AS AbsFreq,
CAST(ROUND(100. * (COUNT(rd.wind_speed)) / (SELECT COUNT(*) FROM raw_data), 3) AS DEC(4,3)) AS AbsPerc
FROM raw_data AS rd
GROUP BY rd.wind_speed
)
SELECT wind_speed, AbsFreq,
SUM(AbsFreq) OVER(ORDER BY wind_speed ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS CumFreq,
AbsPerc,
SUM(AbsPerc) OVER(ORDER BY wind_speed ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS CumPerc,
CAST(REPEAT('.',AbsPerc*100) AS VARCHAR(200)) AS Histogram
FROM freqCTE
ORDER BY wind_speed;
그리고 나는 내가 이렇게 풍속을 반올림할 수 있다는 것을 압니다.
ROUND(rd.wind_speed / 0.36, 0) * 0.36
저는 CTE 내부에서 온갖 시도를 해봤고, CTE 이후에는 SET를 사용해봤지만, 제가 원하는 것을 할 수가 없었습니다.제가 정말로 보고 싶은 것은 다음과 같은 표입니다.
ws36 freq
0.00 4000
0.36 500
0.72 600
1.08 800
etc.
더 간단한 질문을 생각하고 있습니다.
SELECT ROUND(rd.wind_speed / 0.36, 0) * 0.36 as wind_speed_036,
COUNT(*) as cnt
FROM raw_data rd
GROUP BY wind_speed_036
ORDER BY wind_speed_036;
언급URL : https://stackoverflow.com/questions/56630373/how-do-i-coalesce-my-data-to-reduce-the-number-of-different-values-in-mariadb
반응형
'programing' 카테고리의 다른 글
SQL 수: 불규칙한 동작 (0) | 2023.08.20 |
---|---|
도커 빌드에서 "컨텍스트를 준비할 수 없습니다. 컨텍스트는 디렉토리여야 합니다. /Users/tempUser/git/docker/Dockerfile" (0) | 2023.08.20 |
mysql MEMORY ENGINE이 더 많은 데이터를 저장하도록 하려면 어떻게 해야 합니까? (0) | 2023.08.20 |
의 메모리 스트림에 Excel 워크북을 쓰는 방법.NET? (0) | 2023.08.20 |
URL 매개 변수를 Vuejs에 전달하는 방법 (0) | 2023.08.20 |