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

时间:2013-07-11 07:54:46

标签: mysql sql

我有一张这样的表

TYPE      AMOUNT  

purc    100
sale    120
sale    80
purc    150
sale    50
sale    70
sale    120
purc    60

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

TYPE     AMOUNT
purc    310
sale    440

但我想在一个查询中仅将单个结果用于销售和purc,如

SALE   PURC   PROFIT
440    310    130

那个单一查询是什么?

1 个答案:

答案 0 :(得分:5)

试试这个:

SELECT
  SUM(IF(`TYPE` = 'purc', `AMOUNT`, 0)) as `PURC`,
  SUM(IF(`TYPE` = 'sale', `AMOUNT`, 0)) as `SALE`
FROM `MyTable`

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

使用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`