How to order WP_Query to group results?

If your naming system is consistent then simply ordering by the post name should do it:

$args = array(
    'orderby' => 'title', 
    'order' => 'ASC',
);
$q = new WP_Query($args);
var_dump($q->request);
var_dump(wp_list_pluck($q->posts,'post_title'));

Or, as a pre_get_posts filter (assuming the main query is what we want to alter):

add_action(
  'pre_get_posts',
  function ($qry) {
    if ($qry->is_main_query()) {
      $qry->set('orderby','title');
    }
  }
);

This is what I’d consider a fragile solution. A more complicated one, but more reliable, would be to save custom meta for your IDs and order by that custom meta.

If you have the data saved as custom meta then use these arguments instead:

$args = array(
    'meta_key' => 'SKU', // maybe sku; or whatever your KEY is
    'orderby' => 'meta_value',
    'order' => 'ASC',
);