如何计算所有行的总数并显示为列?

时间:2018-07-17 09:59:30

标签: sql oracle oracle11g

例如我有一张桌子,如下:

Fruit        |      Count  
=================================    
Apples       |       3              
Oranges      |       4  
Pineapple    |       3
Pear         |       5

我想从此表中进行选择,找到水果总数(在此示例中为15),然后在选择查询输出中显示该总数。 (每行)。输出样本:

Fruit          Count         Total   
-----------|------------|-------------      
Apples     |     3      |    15    
Oranges    |     4      |    15
Pineapple  |     3      |    15
Pear       |     5      |    15

我已经尝试过下面的查询,并且可以正常工作:

select Fruit, Count, (select sum(count) from FruitTable) from FruitTable;

但是我不想编写一个子查询。有更好的方法吗?

1 个答案:

答案 0 :(得分:4)

分析功能在这里很方便:

SELECT
    Fruit,
    Count,
    SUM(Count) OVER () Total
FROM yourTable;