0
我有一系列基于时间的mysql数据点。假设时间间隔为1秒,最高可达30000秒。这些值总是相同或随着时间值的增加而减少,并且呈指数下降的方式下降(开始快,然后非常缓慢)。确切的比例并未设定或未知。因此,例如:Mysql,得到不同的时间间隔的数值计数
duration_seconds, value
1, 900
2, 898
3, 897
...
1000, 300
1001, 300
1002, 299
1003, 299
...
15000,100
..
20000,99
..
30000,99
首先,这些数字始终是唯一的,或者是每秒1个唯一值。在中间,每分钟可能有30个唯一值。最后,每30分钟可能有1个独特的值。
我想确定在整个足够范围内每分钟唯一值的数量以模拟此曲线。我只需要存储唯一的值,但是我想知道插入所有数据的频率。
我想使用一个查询来基本上做到这一点,时间间隔高达30000.如300秒。并获得每个范围内唯一值的计数。是否有某种我可以使用的分组方法?
SELECT 0,300,count(distinct value) FROM data WHERE duration_seconds >= 0 AND duration_seconds <= 300;
SELECT 300,600,count(distinct value) FROM data WHERE duration_seconds >= 300 AND duration_seconds <= 600;
SELECT 600,1200,count(distinct value) FROM data WHERE duration_seconds >= 600 AND duration_seconds <= 1200;
...
一个子问题可能是,我如何根据变化率来确定理想范围?例如0-300开局不错,但1200-3600中途可能更好,20000-30000可能最好结束,因为最终的分数变化不大。