Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 对从SELECT语句返回的所有行求和_Mysql_Sum - Fatal编程技术网

Mysql 对从SELECT语句返回的所有行求和

Mysql 对从SELECT语句返回的所有行求和,mysql,sum,Mysql,Sum,这个查询有什么问题?我想对来自内部查询的所有行求和。只需使用sum而不使用内部查询: SELECT SUM(SELECT type.value FROM type,item_type WHERE item_type.type_id = type.id AND item_type.type_id IN (4,7) GROUP BY type.id) 只需使用SUM,无需内部查询: SELECT SUM(SELECT type.value FROM type,item_type WHERE i

这个查询有什么问题?我想对来自内部查询的所有行求和。

只需使用
sum
而不使用内部查询:

SELECT SUM(SELECT type.value
FROM type,item_type 
WHERE item_type.type_id = type.id AND item_type.type_id IN (4,7)
GROUP BY type.id)

只需使用
SUM
,无需内部查询:

SELECT SUM(SELECT type.value
FROM type,item_type 
WHERE item_type.type_id = type.id AND item_type.type_id IN (4,7)
GROUP BY type.id)

您应该学会使用正确的
join
语法和表别名:

SELECT type.id, SUM(type.value)
FROM type,item_type 
WHERE item_type.type_id = type.id AND item_type.type_id IN (4,7)
GROUP BY type.id
如果希望每个
type.id
对应一行,则需要一个
分组依据


您的查询无法工作,因为不允许子查询作为聚合函数的参数。即使是这样,上下文也将用于标量子查询,并且您的子查询可能返回多行。

您应该学会使用正确的
连接
语法和表别名:

SELECT type.id, SUM(type.value)
FROM type,item_type 
WHERE item_type.type_id = type.id AND item_type.type_id IN (4,7)
GROUP BY type.id
如果希望每个
type.id
对应一行,则需要一个
分组依据

您的查询无法工作,因为不允许子查询作为聚合函数的参数。即使是这样,上下文也将用于标量子查询,并且您的子查询可能返回多行。

您不能对子查询使用SUM()函数。根据手册,SUM()函数返回数值列的总和。你当时的做法是:选择1+50+30+10。选择值的表格在哪里?sintax是:

SELECT SUM(t.value)
FROM type t JOIN
     item_type it
     ON it.type_id = t.id 
WHERE it.type_id IN (4,7);
看看:

正确的方法是

SELECT SUM(column) FROM table 
考虑使用JOIN sintax而不是多个表:

不能对子查询使用SUM()函数。根据手册,SUM()函数返回数值列的总和。你当时的做法是:选择1+50+30+10。选择值的表格在哪里?烧结机为:

SELECT SUM(t.value)
FROM type t JOIN
     item_type it
     ON it.type_id = t.id 
WHERE it.type_id IN (4,7);
看看:

正确的方法是

SELECT SUM(column) FROM table 


考虑使用JOIN sintax而不是多个表:

为什么不在没有内部查询的情况下使用SUM?因为内部查询使用GROUP BY,因此SUM受该语句的影响。我想对具有不同id的所有行求和,在一行中显示所有不同id的和。@Richard。编辑您的问题并提供示例数据和所需结果。为什么不在没有内部查询的情况下使用SUM?因为内部查询使用GROUP BY,因此SUM受该语句的影响。我想对具有不同id的所有行求和,在一行中显示所有不同id的和。@Richard。编辑您的问题并提供示例数据和所需结果。[…]在一行中显示所有不同ID的总和:/@Richard此查询返回一行,其值为不同ID的总和
项类型
类型
表和
表之间的关系。此关系为n对n,因为此值可能重复。@Richard请查看您的查询,选择具有不同id的所有值,然后尝试获取这些值的总和。同样的工作也可以完成上面的查询。请您进一步解释您的问题好吗?[…]将所有不同ID的总和显示在一行中:/@Richard此查询返回一行,其值为不同ID的总和
项类型
类型
表和
表之间的关系。此关系为n对n,因为此值可能重复。@Richard请查看您的查询,选择具有不同id的所有值,然后尝试获取这些值的总和。同样的工作也可以完成上面的查询。您能进一步解释一下您的问题吗?它应该可以工作,但GROUP BY避免了
id
列中的重复值。同时,我想在一行中显示所有不同id的总和。它应该可以工作,但GROUPBY避免在
id
列中重复值。同时,我想在一行中显示所有不同ID的总和。我编辑并试图更好地解释。请再试一次!我编辑并试图更好地解释。请再试一次!