How to group the labels in BarChart?

I want to generate the following bar chart, and I need to group the labels.
How should it be done?

data = {{RandomInteger[{0, 100}, 100],RandomInteger[{0, 100}, 100], 
    RandomInteger[{0, 100}, 100]}, {RandomInteger[{0, 100}, 100], 
    RandomInteger[{0, 100}, 100]}};
BoxWhiskerChart[data, 
 ChartLabels -> {{"Group1", "Group2"}, {"a", "b", "c", "d", "e"}}]

Hi Ming-Chou,

I have run into this issue before. Here is a workaround using a custom LabelingFunction, but it does not quite match your requirements.

labels = {{"Group1", "Group2"}, {{"a", "b", "c"}, {"d", "e"}}}
BoxWhiskerChart[data,
 ChartLabels -> {First@labels, None},
 LabelingFunction -> (Placed[labels[[2]][[##]] & @@ #2, Below] &)]

Crossposted here.

Hi Rohit Namjoshi:

I did ask this question repeatedly in two forums!

When I have a problem I can’t solve, I always look for a similar paradigm in both forms ~~

Because this problem has been bothering me for a long time!

Sorry if I cause people any trouble~~

Thank you for giving me this idea~~
It is very important to me~~