MySQL在整个表上连接SUM列
假设我有下表:MySQL在整个表上连接SUM列,mysql,sum,left-join,Mysql,Sum,Left Join,假设我有下表: id num_votes total_rating ------------------------------- 1 20 30 2 40 13 3 15 25 我想把所有ids的总和加入到整个表中,这样看起来像: id num_votes total_rating sum -------------------------------------- 1
id num_votes total_rating
-------------------------------
1 20 30
2 40 13
3 15 25
我想把所有id
s的总和加入到整个表中,这样看起来像:
id num_votes total_rating sum
--------------------------------------
1 20 30 6
2 40 13 6
3 15 25 6
我试着自己做一个左连接,但我只得到一行结果——有什么想法吗
谢谢
SELECT t.*, idsum
FROM (
SELECT SUM(id) AS idsum
FROM mytable
) q,
mytable t
这是一个内联选择,它们可能很昂贵。但它在这里起作用。它是一个不相关的标量子查询,因此理论上它应该只执行一次,而不是对每一行重复执行。我查看了测试查询的解释结果,该子查询只运行了一次。这有两个查询在所有行中运行。
SELECT id, num_votes, total_rating, (SELECT SUM(id) FROM `table`) AS sum FROM `table`