
SQL
Добрый день! Помогите пожалуйста сообразить, как написать запрос
Sql запрос, который выводит полную таблицу продуктов с дополнительным стобцом количества продуктов на один код производителя. 

У вас колонки в БД так по-русски и называются, с пробелами? Или это при выводе им назначили названия? Для написания запроса надо знать, какие они в таблицах, и само название таблицы тоже нужно.
И какая СУБД? Возможности агрегирования сильно зависят от реализации.
Например, в некоторых можно сделать так:
Замените названия таблицы и колонок на ваши, если они отличаются.
А если в вашей СУБД это не сработает, можно сделать через подзапрос или связку, как написано ниже.
И какая СУБД? Возможности агрегирования сильно зависят от реализации.
Например, в некоторых можно сделать так:
SELECT "Код продукта", "Наименование", "Производитель",
COUNT(*) AS "Количество продуктов у производителя"
FROM "Продукты"
ORDER BY "Код продукта"
В одной колонке будет агрегация по колонке "Производитель", а остальные пойдут как есть, без агрегации. Агрегат растиражируется во все строки, по которым он собран, как вам и нужно в задаче.Замените названия таблицы и колонок на ваши, если они отличаются.
А если в вашей СУБД это не сработает, можно сделать через подзапрос или связку, как написано ниже.
SELECT p."Код продукта", p."Наименование", p."Производитель",
COUNT(s."Код продукта") AS "Количество продуктов у производителя"
FROM "Продукты" p, "Продукты" s
WHERE p."Код продукта" = s."Код продукта"
GROUP BY s."Производитель"
ORDER BY "Код продукта"
SELECT
g1.код_продукта,
g1.наименование,
g1.производитель,
(
SELECT COUNT(*)
FROM продукты AS g2
WHERE g2.производитель = g1.производитель
) AS количество
FROM продукты AS g1
SELECT
g1.код_продукта,
g1.наименование,
g1.производитель,
g2.количество
FROM продукты AS g1
INNER JOIN (
SELECT производитель, COUNT(*) AS количество
FROM продукты
GROUP BY производитель
) AS g2
ON g1.производитель = g2.производитель
Ник
Простите пожалуйста, а вот так не получится?
SELECT
id_producta,
name,
proizvoditel,
COUNT(proizvoditel) OVER (PARTITION BY proizvoditel) as colichestvo
FROM products;
SELECT
id_producta,
name,
proizvoditel,
COUNT(proizvoditel) OVER (PARTITION BY proizvoditel) as colichestvo
FROM products;
Похожие вопросы
- PL SQL Помогите пожалуйста как из этого запроса сделать функцию
- Помогите пожалуйста составить sql запрос
- Написать запрос sql
- Добрый день! Нужен взгляд специалиста в области СУБД. Буду создавать базу данных комплектующих пк.
- Помогите написать sql запросы
- MySQL запрос интервал в 1 день
- Выполнение вложенного запроса в БД. Скалярные запросы.
- MySQL.Задания по запросам.
- Не отрабатывает вложенный MySQL запрос
- Какие вы знаете методы оптимизации времени выполнения запроса (кроме оптимизации самого запроса)?
SELECT
id_producta,
name,
proizvoditel,
COUNT(proizvoditel) OVER (PARTITION BY proizvoditel) as colichestvo
FROM products;