Как использовать group_concat с суммой количества в зависимости от цены? - PullRequest
0 голосов
/ 23 июня 2018

Это моя таблица, в которой хранится идентификатор с указанием количества и цены. Я хотел бы суммировать кол-во на основе цены. Иногда qty может быть равно 0, если 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

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

1 Ответ

0 голосов
/ 23 июня 2018

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

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...