
	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;