Вот такой запрос
$subQuery = (new Query())->select('id, username, text, sender_id')->from('pm')->where('user_id =2 AND sender_id !=2 AND STATUS !=2 ORDER BY created_at DESC');
$query = self::find();
$query->from(['AS tmp_table GROUP BY sender_id' => $subQuery]);
$query->with(['profile']);
формирует SELECT * FROM (SELECT `id`, `username`, `text`, `sender_id` FROM `pm` WHERE user_id =2 AND sender_id !=2 AND STATUS !=2 ORDER BY created_at DESC) `AS tmp_table GROUP BY sender_id` LIMIT 10
с виду получается тот самый запрос который нужен, но он почему-то не группирует, а вот если руками убрать кавычки из `AS tmp_table GROUP BY sender_id` т.е поменять на AS tmp_table GROUP BY sender_id тогда все выводит как надо, но как заставить генерить запрос без этих кавычек?