You haven't really provided enough info to be able to understand exactly what you're working with. If the following doesn't help, then please provide a minimal example of the tabular data you're working with and the specific keys that you want to operate on. In the meantime, here's my best guess...
Here's a test Tabular:
tab = Tabular[{{"a", 1, 100}, {"b", 2, 200}, {"a", 3, 300}, {"b", 4, 400}}, {"col1", "col2", "col3"}]

You said you want to get the columns from ColumnKeys and several indices, so I'm assuming you have a list of values for i that you will use to index into ColumnKeys[tab]. So for example, if your desired i values are {1,3}, we need to generate the argument to AggregateRows, which would be something like:
{"col1" -> Function[Total[#["col1"]]], "col3" -> Function[Total[#["col3"]]]}
One way is a simple Table:
Table[ColumnKeys[tab][[i]] -> Function[Evaluate[Total[#[ColumnKeys[tab][[i]]]]]], {i, {1, 3}}]
(* {"col1" -> (Total[#1["col1"]] &), "col3" -> (Total[#1["col3"]] &)} *)
The Evaluate is needed because Function holds its arguments unevaluated, and we need to actually extract the desired key to create the body of our function. Evaluate forces evaluation of arguments that would otherwise be held unevaluated.
Now just insert this into AggregateRows:
AggregateRows[tab, Table[ColumnKeys[tab][[i]] -> Function[Evaluate[Total[#[ColumnKeys[tab][[i]]]]]], {i, {1, 3}}]]
