我有一张像
这样的表格cases open/close count
-----------------------------
A open 10
A close 15
B open 6
B close 4
我需要得到一个类似
的结果表cases total open close
---------------------------------
A 25 10 15
B 10 6 4
有关于此的任何想法吗?
答案 0 :(得分:4)
这通常被称为数据透视查询,将行转换为列数据。使用:
SELECT t.cases,
SUM(t.count) AS total,
SUM(CASE WHEN t.open_close = 'open' THEN t.count ELSE 0 END) AS open,
SUM(CASE WHEN t.open_close = 'close' THEN t.count ELSE 0 END) AS close
FROM YOUR_TABLE t
GROUP BY t.cases
Oracle直到11g才添加ANSI PIVOT(和UNPIVOT)语法。
答案 1 :(得分:0)
您可以在列案例上使用数据透视并聚合计数总和。