我如何合并我的数据以减少 MariaDB 中不同值的数量?

How do I coalesce my data to reduce the number of different values in MariaDB?

我有每秒一条记录的风速数据。我发现 95% + 的数据是 0.36 m/s 的倍数(参见屏幕截图 Wind Speeds),我希望找到的是我们仪器配置方式的结果(仍在努力)。

我想做的是将所有值向上或向下舍入到 0.36 的倍数,这样我就可以生成概率密度视觉图。

截图中的table来自这段代码:

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,但我就是无法让它做我想做的事。我真正想看到的是 table 类似的东西:

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;