I have been experimenting with different `NLopt`

optimizers on particular examples of models from `MixedModels`

. The current set of results is available at

For each `id`

I want to determine the minimum objective attained over all the optimizers and subtract that from the `obj`

to determine the `:excess`

. I have the feeling that I should be able to do that one pass to obtain the minimum and one pass to do the join and the subtraction. But I always seem to end up with 3 passes. For example,

```
julia> using JuliaDB
julia> res = loadtable("/home/bates/git/MixedModelExamples/results/results.csv",indexcols=[1,2]);
julia> resaug = join(res, groupby(minimum, res, :id, select=:obj), how=:left, lkey = :id);
julia> resaug = pushcol(resaug, :excess, map(r -> r.obj - r.minimum, resaug));
julia> filter(r -> r.excess > 0.02, resaug)
Table with 15 rows, 8 columns:
id opt code nfeval obj elapsed minimum excess
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
"A0" "LN_NELDERMEAD" "FTOL_REACHED" 28025 1031.93 12.2112 1030.96 0.970225
"A0" "LN_PRAXIS" "FTOL_REACHED" 549 1049.15 0.243573 1030.96 18.1959
"A3" "LN_NELDERMEAD" "MAXEVAL_REACHED" 100000 28675.1 137.02 28586.3 88.7686
"A3" "LN_PRAXIS" "FTOL_REACHED" 2883 28617.8 3.81868 28586.3 31.4375
"A3" "LN_SBPLX" "FTOL_REACHED" 16869 28591.3 22.9396 28586.3 4.96359
"A4" "LN_NELDERMEAD" "FTOL_REACHED" 11367 28674.3 15.3279 28670.9 3.41974
"A4" "LN_PRAXIS" "FTOL_REACHED" 503 28695.1 0.689952 28670.9 24.206
"AP" "LN_NELDERMEAD" "FTOL_REACHED" 3439 8.85058e5 88.9352 8.84958e5 100.191
"Ab" "LN_COBYLA" "FTOL_REACHED" 5 327.498 0.000166279 327.327 0.17135
"Ae" "LN_NELDERMEAD" "FTOL_REACHED" 68 14773.3 0.00268521 14773.2 0.0401451
"An" "LN_COBYLA" "FTOL_REACHED" 1279 7927.57 0.327538 7926.68 0.895492
"An" "LN_NELDERMEAD" "FTOL_REACHED" 44466 7927.5 10.2801 7926.68 0.822917
"An" "LN_PRAXIS" "FTOL_REACHED" 1984 7926.84 0.465446 7926.68 0.168768
"An" "LN_SBPLX" "FTOL_REACHED" 2384 7927.5 0.544271 7926.68 0.821954
"Ar" "LN_NELDERMEAD" "FTOL_REACHED" 44 -257.409 0.00131563 -260.628 3.21928
```

Is there a better way to do this operation in `JuliaDB`

or in `Queryverse`

or using `DataFramesMeta`

?