Count в перекрестном запросе postgresql

помогите пожалуйста! Как сделать перекрестную таблицу в postgresql? из этого в

город заведение
Москва Бар
Иркутск Ресторан
Братск Кафе
Тбилиси Бар
Москва Бар
Иркутск Кафе
Москва Кафе

в это:

город Бар Ресторан Кафе
Москва 2 1
Иркутск 1 1
Братск 1
Тбилиси 1

Так пробую, но нет понимания -_-

SELECT *
FROM crosstab('select city, type_dep, count(type_dep) AS ct
    FROM content.departments
    GROUP by city, type_dep') AS ct ('Бар' int, 'Ресторан' int, 'Кафе' int)

нет понимания что делать -_-


Ответы (1 шт):

Автор решения: Xewus S

SELECT
city,
SUM(IFNULL(place='Бар', 0)),
SUM(IFNULL(place='Ресторан', 0)),
SUM(IFNULL(place='Кафе', 0))
FROM
city_place
GROUP BY
city
;

→ Ссылка