如何在sql中做自定义组

时间:2013-02-07 05:12:31

标签: sql oracle

这是表格:

ID     TYPE     AMOUNT
--     ----     ------
 1     sell         50
 1     sell        100
 1      buy        200
 2     sell         50
 2      buy        100

如何编写返回以下结果的SQL查询:

ID    TOTAL
--    -----
 1       50
 2       50

我想我需要group by id,但我不确定如何做"减去"在"出售"的。

我的数据库是oracle,顺便说一句。

由于 此致

2 个答案:

答案 0 :(得分:2)

答案很简单。

SELECT id, SUM(
       CASE type
         WHEN 'Buy' THEN amount
         WHEN 'Sell' THEN -amount
       END
       ) AS TOTAL
FROM tbl
GROUP BY id

答案 1 :(得分:1)

这应该有效,

select "id",sum(decode(type,'sell',-"amount","amount")) total
from table1
group by "id"

SQL FIDDLE OUTPUT