我在实现以下结果方面遇到了一些麻烦。
这是我目前的表格:
ID NR COST
1 7001 100
2 7001 50
3 7020 800
4 7020 190
5 7050 205
6 7050 80
这是我想要实现的目标:
ID NR COST TOTAL
1 7001 100 150
2 7001 50 150
3 7020 800 990
4 7020 190 990
5 7050 205 285
6 7050 80 285
所以我想创建一个额外的列,其中“NR”列的总和是。
我尝试使用SUM,但随后会花费整个成本列。
这是我目前的查询:
SELECT distinct id, nr, cost, sum(cost) as total
FROM customers
group by id, nr, cost
答案 0 :(得分:2)
您可以使用子查询计算每个NR的总数,然后将其添加到原始结果中:
SELECT id,
nr,
cost,
A.subtotal AS TOTAL
FROM table1
INNER JOIN (SELECT nr,
Sum(cost) AS subTotal
FROM table1
GROUP BY nr) AS A
ON table1.nr = A.nr
答案 1 :(得分:1)
您可以使用汇总查询进行自我加入:
SELECT id, mytalbe.nr, cost, total
FORM mytable
JOIN ON (SELECT nr, SUM(cost) AS total
FROM mytable
GROUP BY nr) t ON t.nr = mytable.nr