在oracle中生成交叉表报告?

时间:2014-01-16 10:15:26

标签: sql oracle oracle11g crosstab

如何查询交叉表等报告? 例如,我的表格如下所示

+----+--+--+--+
|Name|v1|v2|v3|
+----+--+--+--+
|A   |12|10|5 |
+----+--+--+--+
|B   |10|5 |20|
+----+--+--+--+

现在我的查询应该给我以下内容?

+-----+--+--+--+
|Name |v1|v2|v3|
+-----+--+--+--+
|A    |12|10|5 |
+-----+--+--+--+
|B    |10|5 |20|
+-----+--+--+--+
|Total|22|15|25|
+-----+--+--+--+

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

使用UNION加入行:(MYSQL CODE)

SELECT name,v1,v2,v3 FROM my_table 
UNION ALL 
SELECT "total",sum(v1) as v1 ,sum(v2) as v2 ,sum(v3) as v3 FROM my_table;

观看它在这里工作:sqlfiddle

答案 1 :(得分:1)

以下是您对mysql数据库的查询的类似示例:

SELECT year, SUM(profit) FROM sales GROUP BY year WITH ROLLUP;
+----+-----------+
|year|SUM(profit)|
+----+-----------+
|2000|4525       |
+----+-----------+
|2001|3010       |
+----+-----------+
|NULL|7535       |
+----+-----------+
相关问题