首页 > 解决方案 > 如何计算所有行的总数并显示为列?

问题描述

例如,我有一个如下表:

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;

但我不想写子查询。有没有更好的方法来做到这一点?

标签: sqloracleoracle11g

解决方案


分析函数在这里派上用场:

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

推荐阅读