#sql #oracle #oracle-sqldeveloper
#sql #Oracle #oracle-sqldeveloper
Вопрос:
Моя база данных содержит 2 таблицы с именами products и product_categories.
Product_categories содержат category_id и category_name Продукты содержат category_id и другую не относящуюся к делу информацию по этому вопросу.
Мне нужно подсчитать количество продуктов, используя category_id из таблицы products, а также отобразить их имя, которое находится в таблице product_categories.
Select * FROM product_categories
отображает :
category_id, category_name
1 CPU
2 Video Card
3 RAM
4 Mother Board
5 Storage
И
Select * FROM products
отображение (сокращенное):
category_id
399.77 564.89 1
481.56 554.99 1
4058.99 5499.99 2
3619.14 4139 2
2505.04 3254.99 2
... UPTO CATEGORY_ID 5
Текущий оператор :
SELECT category_id , COUNT (1) AS "TOTAL"
FROM products
GROUP BY category_id;
Вывод:
Category_id, total
1 70
2 50
5 108
4 60
ЖЕЛАЕМЫЙ РЕЗУЛЬТАТ: мне нужно отобразить идентификатор категории, за которым следует название категории, и, наконец, общее количество продуктов.
Комментарии:
1. Укажите желаемый результат.
Ответ №1:
Присоединяйтесь к этим таблицам:
select p.category_id,
c.category_name,
count(*) as total
from products p join product_categories c on c.category_id = p.category_id
group by p.category_id,
c.category_name
Возможно, вам захочется включить его во внешнее объединение, если вы хотите отобразить категории, которых нет в products
таблице.