获取数据样本以进行绘图

时间:2012-09-03 12:52:55

标签: java mysql sql

我有一个关于mysql的表,其中包含大量的数据(例如> 10000),将所有数据加载到Java然后绘制图形似乎相当慢。我想得到几个点来绘制图形,但我不知道如何。比如,每10或100行获取数据。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

如果你有一个自动增量字段,你只需使用余数(mod)选择每10或100行:

SELECT actor_id, last_name FROM actor WHERE MOD(actor_id, 10) = 0;

您还可以为每一行添加一个行号,并将结果限制在:

SELECT actor_id, last_name, row_number FROM
(SELECT actor_id, last_name, @currentRow := @currentRow + 1 AS row_number FROM
actor JOIN (SELECT @currentRow := 0) Row) Data
WHERE MOD(row_number, 10) = 0;

很酷的行号技术是Daniel Vassallo。 With MySQL, how can I generate a column containing the record index in a table?

祝你好运:)

答案 1 :(得分:1)

或者您可以将整个间隔min(x) - max(x)除以N个间隔,并且每个间隔只得到一个平均点。例如(这里有10个区间)这样的东西:

select round((x-@minx)/@step),avg(y) from PLOT_DATA,
(select @minx:=min(x),
        @maxx:=max(x),
        @intervals:=10, /*separated intervals count*/
        @step:=(@maxx-@minx)/@intervals
  from PLOT_DATA) t

group by round((x-@minx)/@step)
order by round((x-@minx)/@step)