Сгруппировать результат в MySQL и показать в списке - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть большая таблица:

create table data
(
    id                bigint unsigned auto_increment primary key,
    first              varchar(120)                     null,
    last_           varchar(120)                     null,
    country             varchar(30)                     not null
)
    collate = utf8mb4_unicode_ci;

Мне нужно отобразить количество людей из отдельных стран в списке.

У меня типичный SQL запрос:

public function getAll(): array
    {
        $this->db->query('SELECT * FROM data ORDER by id DESC;');
        return $this->db->resultSet();
    }

но я не знаю, как группировать мои результаты: (

Я печатаю свой результат:

$this->model->getAll()

и затем foreach ....

В результате мне нужно:

1. 10 users from Poland; 
2. 101 users from Germany; 
3. 99 users from UK....

Пожалуйста, помогите мне

1 Ответ

0 голосов
/ 14 апреля 2020

Вы, похоже, ищете простую агрегацию:

select country, count(*) no_users from data group by country order by country;

Это дает вам два столбца, с указанием страны и количества пользователей. Затем вы можете сгенерировать правильный вывод строки в вашем приложении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...