分组后如何获得单个结果?

Man*_*noj 0 mysql sql

我有一张这样的桌子

TYPE      AMOUNT  

purc    100
sale    120
sale    80
purc    150
sale    50
sale    70
sale    120
purc    60
Run Code Online (Sandbox Code Playgroud)

当我运行此查询"选择类型,总和(AMOUNT)作为MyTable GROUP的数量类型"我可以获得2个结果集

TYPE     AMOUNT
purc    310
sale    440
Run Code Online (Sandbox Code Playgroud)

但我希望单个结果只在一个查询中出售和purc之类的

SALE   PURC   PROFIT
440    310    130
Run Code Online (Sandbox Code Playgroud)

这个单一查询是什么?

Mat*_*ari 5

试试这个:

SELECT
  SUM(IF(`TYPE` = 'purc', `AMOUNT`, 0)) as `PURC`,
  SUM(IF(`TYPE` = 'sale', `AMOUNT`, 0)) as `SALE`
FROM `MyTable`
Run Code Online (Sandbox Code Playgroud)

这应该在您的桌子上执行所谓的旋转.

使用CASE而不是IF:

SELECT
  SUM(CASE `TYPE` WHEN 'purc' THEN `AMOUNT` ELSE 0 END) as `PURC`,
  SUM(CASE `TYPE` WHEN 'sale' THEN `AMOUNT` ELSE 0 END) as `SALE`
FROM `MyTable`
Run Code Online (Sandbox Code Playgroud)