首页 > 解决方案 > SQL 查询将项目及其数量分组,然后显示总数量

问题描述

我想使用 SQL 查询重新排列以下数据:

在此处输入图像描述

我想将相同的 order_id 分组以显示如下:

99996 | 63 - 2, 62 - 2 | 4

因此,这是在同一订单中查找商品,显示产品 ID 和数量,然后显示每个订单的所有数量的总和。

通常我会尝试这个并显示我的代码,但我什至不知道从哪里开始!

标签: mysqlsql

解决方案


使用两个级别的聚合:

select order_id, group_concat(product_id, ' - ', cnt separator ', ') as products, sum(cnt) as total
from (select order_id, product_id, count(*) as cnt
      from t
      group by order_id, product_id
     ) op
group by order_id;

推荐阅读