diff --git a/backend/src/main/java/com/bakdata/conquery/models/query/statistics/DynamicHistogram.java b/backend/src/main/java/com/bakdata/conquery/models/query/statistics/BalancingStaticHistogram.java similarity index 92% rename from backend/src/main/java/com/bakdata/conquery/models/query/statistics/DynamicHistogram.java rename to backend/src/main/java/com/bakdata/conquery/models/query/statistics/BalancingStaticHistogram.java index 5ee1d26e6a..4b909510aa 100644 --- a/backend/src/main/java/com/bakdata/conquery/models/query/statistics/DynamicHistogram.java +++ b/backend/src/main/java/com/bakdata/conquery/models/query/statistics/BalancingStaticHistogram.java @@ -10,13 +10,13 @@ import lombok.Data; @Data -public class DynamicHistogram { +public class BalancingStaticHistogram { private final Node[] nodes; private final double min; private final double width; - public static DynamicHistogram create(double min, double max, int expectedBins) { - return new DynamicHistogram(new Node[expectedBins], min, (max - min) / expectedBins); + public static BalancingStaticHistogram create(double min, double max, int expectedBins) { + return new BalancingStaticHistogram(new Node[expectedBins], min, (max - min) / (expectedBins - 1)); } public void add(double value) { diff --git a/backend/src/main/java/com/bakdata/conquery/models/query/statistics/NumberColumnStatsCollector.java b/backend/src/main/java/com/bakdata/conquery/models/query/statistics/NumberColumnStatsCollector.java index f50f4d1b30..88626e1c4f 100644 --- a/backend/src/main/java/com/bakdata/conquery/models/query/statistics/NumberColumnStatsCollector.java +++ b/backend/src/main/java/com/bakdata/conquery/models/query/statistics/NumberColumnStatsCollector.java @@ -94,17 +94,17 @@ public ResultColumnStatistics describe() { @NotNull private List createBins(int total, int expectedBins) { - final DynamicHistogram histogram = DynamicHistogram.create(getStatistics().getMin(), getStatistics().getMax(), expectedBins); + final BalancingStaticHistogram histogram = BalancingStaticHistogram.create(getStatistics().getMin(), getStatistics().getMax(), expectedBins); Arrays.stream(getStatistics().getValues()).forEach(histogram::add); - final List balanced = histogram.balanced(expectedBins, total); + final List balanced = histogram.balanced(expectedBins, total); final List entries = new ArrayList<>(); - for (DynamicHistogram.Node bin : balanced) { + for (BalancingStaticHistogram.Node bin : balanced) { final String lower = printValue(bin.getMin()); final String upper = printValue(bin.getMax());