假设您有一些包含这两列的项目表:


项目名称
价钱


.... ItemName是唯一的。

您如何显示每个ItemName的所有价格的总和(我使用的是Oracle)?如果我只是尝试这样做:

SELECT ItemName,
       SUM(Price)
  FROM Items


我收到此错误:


ORA-00937:不是单个组的组
功能


...仅当我使用GROUP BY时才消失。但是,我只能按组求和,而不是全部求和。

最佳答案

您不能在同一查询中同时分组和不分组。您可以使用子查询来获取价格:

select ItemName, (select sum(Price) from Items) as AllPrices
from Items


由于子查询不使用主查询中记录中的任何数据,因此数据库应该能够对其进行优化以仅执行一次子查询。

关于sql - 显示所有记录的总和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1947523/

10-12 04:19