我得到的数据是这样的:
ITEM COLOR VOL
1 RED 3
2 BLUE 3
3 RED 3
4 GREEN 12
5 BLUE 3
6 GREEN 12
我希望得到每种颜色的总和, 表示RED + BLUE + GREEN = 3 + 3 + 12 = 18
P.S我无法在子查询中执行此操作,因为它已经是大查询的一部分。我正在寻找一种方法可以在select子句中做到这一点。比如
select sum(distinct(COLOR) VOL) from myTable group by COLOR
非常感谢!
答案 0 :(得分:3)
一种方法使用CTE或子查询来查找每种颜色的平均体积。然后取所有颜色的所有平均体积的总和。
WITH cte AS (
SELECT COLOR, AVG(VOL) AS VOL -- or MIN(VOL), or MAX(VOL)
FROM yourTable
GROUP BY COLOR
)
SELECT SUM(t.VOL)
FROM cte t
答案 1 :(得分:3)
答案 2 :(得分:2)
sum(max(vol)) from ... group by color
会起作用,但不清楚为什么你需要这样的东西。可能这个总和可以在您的查询中更早地计算(很多),而不是在最后。
概念证明(在标准Oracle模式上):
SQL> select sum(max(sal)) from scott.emp group by deptno;
SUM(MAX(SAL))
-------------
10850
1 row selected.