Как использовать group_concat с суммой количества в зависимости от цены?

0

Это моя таблица, в которой хранится идентификатор с его количеством и ценой. Я хотел бы суммировать qty по цене. Иногда qty может показывать 0, если qty - отрицательное значение. Таким образом, я не буду показывать цену падения qty в 0, когда группа по цене.

id | id_item | qty | price
1    1         10    1.00
2    1         15    2.00
3    1         10    1.00
4    2         5     2.00
5    2         5     2.50
6    3         10    1.00
7    3         10    1.00
8    3         5     1.00

Это то, что я пробовал.

Select id_item, price, sum(qty) as total from sales group by id_item, price having total !=0;

Result
id_item | qty | price
1         20    1.00
1         15    2.00
2         5     2.00
2         5     2.50
3         10    1.00

Ожидаемый результат с concat

id_item | qty     | price
1         20,15     1.00,2.00
2         5,5       2.00.2.50
3         10        1.00

Как я могу достичь результата, как показано?

Теги:
eloquent

1 ответ

0
Лучший ответ

Я думаю, вам нужны два уровня агрегации:

select id_item, group_concat(total order by price) as quantities,
       group_concat(price order by price) as prices
from (Select id_item, price, sum(qty) as total
      from sales
      group by id_item, price
      having total <> 0
     ) s
group by id_item;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню