带有子查询的MySQL QUERY SUM()

时间:2016-02-12 10:23:24

标签: mysql

我有一个简单的请求,我无法在MySQL中找到:

我的查询得到了这个:

TABLEA
+----+----------+
| id | quantity |
+----+----------+
|  1 |        2 |
|  2 |        5 |
|  3 |        7 |
|  4 |        4 |
+----+----------+

Select id, Quantity From tableA

我想要这个:

TABLE A
+----+------------+--------+
| id | quantity   | total  |
+----+------------+--------+
|  1 |          2 | 18     |
|  2 |          5 | 18     |
|  3 |          7 | 18     |
|  4 |          4 | 18     |
+----+------------+--------+

Select id, Quantity, SUM(quantity) total From tableA

但我不想这样做

Select id, Quantity, FROM tableA
JOIN select SUM(quantity) total FROM tableA

因为tableA在我的代码中已经是一个子查询,需要一些时间。

任何想法?

编辑:我使用JOIN作为我的示例,但我想避免使用" FROM tableA"再次

编辑2:

TABLE A
+----+------------+--------+
| id | quantity   | total  |
+----+------------+--------+
|  1 |          2 | 7      |
|  1 |          5 | 7      |
|  2 |          7 | 11     |
|  2 |          4 | 11     |
+----+------------+--------+

2 个答案:

答案 0 :(得分:0)

你必须做一个子选择

SELECT
    a.id,
    a.Quantity,
    (SELECT SUM(b.quantity) FROM tableA b)
FROM
    tableA a

编辑:否则你可以使用上面的subselect在mysql中自己创建一个视图,然后加入该表。

答案 1 :(得分:0)

使用两个select语句,将总和存储到变量中:

从tableA中选择sum(数量)到@sum_quantity;从tableA中选择id,quantity,@ sum_quantity total

这里,聚合函数执行一次。