按 Id 对行进行分组,并将 month 和 order_count 连接为列?



目前我有一个订单表,其格式为每月一行:

订单计数1112021-0750//tr>1112021-081001112021-09<1>1002222021-0780//tr>2021-08年,2222021-09年,222

您需要条件聚合:

SELECT id,
MAX(CASE WHEN order_month = '2021-07' THEN order_count ELSE 0 END) `2021-07-orderCount`,
MAX(CASE WHEN order_month = '2021-07' THEN order_sum ELSE 0 END) `2021-07-orderSum`,
MAX(CASE WHEN order_month = '2021-08' THEN order_count ELSE 0 END) `2021-08-orderCount`,
MAX(CASE WHEN order_month = '2021-08' THEN order_sum ELSE 0 END) `2021-08-orderSum`,
MAX(CASE WHEN order_month = '2021-09' THEN order_count ELSE 0 END) `2021-09-orderCount`,
MAX(CASE WHEN order_month = '2021-09' THEN order_sum ELSE 0 END) `2021-09-orderSum`
FROM orders
GROUP  BY id
ORDER BY id;

请参阅演示

相关内容

  • 没有找到相关文章

最新更新