Junior — Senior
58
Список городов с числом их пользователей, включая нулевые значения
Компании, где спрашивали:
Самокат Тех
Условие задачи
Необходимо получить перечень всех городов и количество пользователей, привязанных к каждому из них. Даже если в каком‑то городе нет ни одного пользователя, он всё равно должен присутствовать в результате с числом 0.
-- Таблица "towns"
create table towns (
id serial primary key,
name text not null
);
insert into towns (name)
values
('Москва'),
('Санкт-Петербург'),
('Краснодар');
-- Таблица "clients"
create table clients (
id serial primary key,
name text not null,
town_id int not null references towns(id)
);
insert into clients (name, town_id)
values
('Иван', 1),
('Анна', 1),
('Олег', 2);
-- Запрос
SELECT towns.name,
COALESCE(COUNT(clients.name), 0) AS user_count
FROM clients
RIGHT JOIN towns
ON towns.id = clients.town_id
GROUP BY towns.name;