我想对同一列中的值求和。我尝试过交叉连接,它确实适用于我,但我不希望结果应该重复值
我有什么: - 表: -
|key|year|value|
----------------
|sam|2013| 30 |
-----------------
|sam|2014| 50 |
-----------------
|sam|2015| 70 |
-----------------
|sam|2016| 90 |
-----------------
|Jam|2013| 0 |
-----------------
|Jam|2014| 10 |
-----------------
|Jam|2015| 0 |
-----------------
|Jam|2016| 20 |
-----------------
查询: -
SELECT (t1.value + t2.value) AS total
FROM table t1 CROSS JOIN table t2
WHERE t1.year = t2.year AND t1.key <> t2.key;
此查询的输出: -
|total|
-----
|30|
-----
|60|
-----
|70|
-----
|110|
-----
|30|
-----
|60|
-----
|70|
-----
|110|
-----
但我想要的是: -
|total|
-----
|30|
-----
|60|
-----
|70|
-----
|110|
-----
有人可以告诉我应该做些什么修改才能得到这个结果?
答案 0 :(得分:1)
我认为你想聚合:
SELECT sum(value) as total
FROM table t1
GROUP BY year
ORDER BY year;