To group by user choices you need to make a data item in your query, call it "Group A". Inside, it try something like:
CASE ?FirstGroup?
When 'Sales' Then [Sales]
When 'Profit' Then [Profit]
END
You can do that for Group B, C, etc. Then in your list, put those new data items in the list group on them. Now you're letting your user choose what to group on.