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
;