I’ve just made a small macro package that approximates data.table syntax: [ANN] FilteredGroupbyMacro.jl
It has the assignment syntax you want as well, although it uses a join in the background. At least you don’t have to write that out.
Your example would be: (the grouping variable comes second)
@by d[!, :b, s := sum(:a)]