Как посчитать количество с ActiveRecord?

Добрый день.
Как посчитать количество городов в таблице ?
`id`,`user`,`country_id`,`city_id`
Как получить просто кол-во записей - понятно
<?= User::find()->count()?>
А как посчитать количество городов у пользователя?
Я сам запрос не понимаю по подсчету уникальных городов
  • Вопрос задан
  • 4297 просмотров
Решения вопроса 1
max7
@max7
max7
1. SELECT COUNT(DISTINCT `city_id`) AS `city_count`  FROM `user_table`;
2. SELECT `user`, COUNT(DISTINCT `city_id`) AS `city_count` FROM `user_table` GROUP BY `user`;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Можно использовать realation типа stat.
Вот примерный код для вашего случая:

class User extends CActiveRecord
{
    public function relations()
    {
        return array(
            'cityCount'=>array(self::STAT, 'City', 'city_id'),
        );
    }
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы