Мне нужна помощь с дизайном запроса.
У меня есть одна таблица с большим количеством строк (она должна быть в одной таблице).
Table name: 201201
columns = code, batch, value, volume
rows = 301, 2920, 100, 2000
301, 3192, 40, 800
302, 6479, 230, 3100
303, 4930, 20, 50
303, 3920, 60, 95
Как я могу получить результаты, чтобы они были представлены таким образом:
code, batches, value, volume
301, 2, 140, 2800
302, 1, 230, 3100
303, 2, 80, 145
Я сделал это, когда использую мультипликационные таблицы, но не могу заставить его работать, когда все строки находятся в одной таблице.
Мне удалось получить количество партий и mrdr с этим запросом
SELECT DISTINCT(`201201`.code), count(DISTINCT(z.batch)) as batches
FROM `201201`
LEFT JOIN `201201` AS z ON `201201`.code = z.code
GROUP BY `201201`.code
Но тогда я застрял.
Заранее спасибо.
Новый выпуск!
Итак, в той же таблице у меня есть столбец риска, который содержит число с плавающей запятой для каждой партии:
Table name: 201201
columns = code, batch, value, volume, risk
rows = 301, 2920, 100, 2000, 0.3
301, 3192, 40, 800, 0.2
302, 6479, 230, 3100, 0.8
303, 4930, 20, 50, 0.8
303, 3920, 60, 95, 1
Я бы хотел умножить риск на значение для каждой строки, а затем суммировать его по коду, как показано ниже.
code, batches, value, volume, risk
301, 2, 140, 2800, 38
Откуда происходит 38, 0,3 * 100 + 0,2 * 40.
То же самое для кодов 302 и 303.