code: private Table splitGroupingColumn(Table groupTable) {
  
          if (splitColumnNames.length > 0) {
              List<Column<?>> newColumns = new ArrayList<>();
              List<Column<?>> columns = sourceTable.columns(splitColumnNames);
              for (Column<?> column : columns) {
                  Column<?> newColumn = column.emptyCopy();
                  newColumns.add(newColumn);
              }
              // iterate through the rows in the table and split each of the grouping columns into multiple columns
              for (int row = 0; row < groupTable.rowCount(); row++) {
                  List<String> strings = SPLITTER.splitToList(groupTable.stringColumn("Group").get(row));
                  for (int col = 0; col < newColumns.size(); col++) {
                      newColumns.get(col).appendCell(strings.get(col));
                  }
              }
              for (int col = 0; col < newColumns.size(); col++) {
                  Column<?> c = newColumns.get(col);
                  groupTable.insertColumn(col, c);
              }
              groupTable.removeColumns("Group");
          }
          return groupTable;
      }
docs: For a subtable that is grouped by the values in more than one column, split the grouping column into separate
  cols and return the revised view