У меня есть таблица отгрузки заказов, как показано ниже:
Я хочу, чтобы выходная таблица выглядела так:
select
order_id
, count(distinct(shipment_id)
, avg(pkg_weight) over (partition by shipment_id)
from table1
group by order_id
но получая следующую ошибку -
столбец "pkg_weight" должен присутствовать в предложении GROUP BY или использоваться в агрегатная функция
Пожалуйста помоги
Что означает 8 как total_pkg_weight? Я бы сказал, что общий вес 21.


Сначала используйте отдельный выбор, а затем агрегируйте:
SELECT Order_ID,
COUNT(DISTINCT shipment_id) AS Distinct_shipment_id,
SUM(pkg_weight) AS total_pkg_weight
FROM
(
SELECT DISTINCT Order_ID, shipment_id, pkg_weight
FROM table1
) t
GROUP BY Order_ID;
Какие rdbms (oracle, sql server, mysql) вы используете?