class Min extends AbstractAggregator implements Aggregator {

    @Override
    public void accept(DataSetRow row, AggregationResult result) {
        final String minKey = row.get(groupBy);

        // skip value not found
        if (StringUtils.isEmpty(minKey)) {
            return;
        }

        // get the value
        double currentValue;
        try {
            currentValue = Double.parseDouble(row.get(columnId));
        } catch (NumberFormatException e) {
            // skip non number
            return;
        }

        // init the group by in the result
        if (!result.contains(minKey)) {
            result.put(minKey, new NumberContext(currentValue));
        }

        NumberContext context = (NumberContext) result.get(minKey);

        if (currentValue < context.getValue()) {
            context.setValue(currentValue);
        }
    }

      Min(String groupBy, String columnId);

}