#sql #postgresql
#sql #postgresql
Вопрос:
У меня есть таблица podcast
. У каждого подкаста есть категория и подкатегория, связанные с ним в виде идентификаторов.
Эти category_id и subcategory_id имеют свои значения имен в соответствующих таблицах —
Теперь я хочу получить количество подкастов по каждой категории, комбинации подкатегорий —
SELECT podcast_category_id, podcast_subcategory_id, count(*)
FROM podcasts
where podcast_owner = 14 AND podcast_upload_time_stamp >= timestamp '2020-10-22 00:00:00'
GROUP BY podcast_category_id, podcast_subcategory_id
Вывод —
Выходные данные podcast_category_id
и podcast_subcategory_id
столбцы отображаются, как и ожидалось. Однако я хочу заменить podcast_category_id
на category_name
и podcast_subcategory_id
на sub_category_name
. Как мне это сделать?
Ответ №1:
Присоединяйтесь к этим таблицам.
SELECT c.category_name, sc.sub_category_name, count(p.*)
FROM podcasts p
join categories c
on c.category_id = p.podcast_category_id
join sub_categories sc
on sc.sub_category_id = p.podcast_subcategory_id
where p.podcast_owner = 14
AND p.podcast_upload_time_stamp >= timestamp '2020-10-22 00:00:00'
GROUP BY 1,2