我有一张桌子:
发票 | 描述 | 成本 |
---|---|---|
123 | 劳动 | 125.00 |
123 | 商店材料 | 25.00 |
124 | 螺栓 | 10.00 |
125 | 劳动 | 100.00 |
125 | 螺栓 | 10.00 |
发票“123”和“125”都有一行描述为“人工”。我需要这些发票所有行的成本总和。
总计 |
---|
260.00 |
我在这方面做了很多尝试,而且我已经进行了令人作呕的搜索。但我什至不确定如何将其作为一个简洁的问题提出。任何帮助将不胜感激。
使用 2 级聚合:
SELECT SUM(cost) total
FROM (
SELECT SUM(cost) cost
FROM tablename
GROUP BY invoice
HAVING SUM(description = 'labor') > 0
) t;
或者,使用
SUM()
窗口函数:
SELECT DISTINCT SUM(SUM(cost)) OVER () total
FROM tablename
GROUP BY invoice
HAVING SUM(description = 'labor') > 0;
查看演示。