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的总和。我编辑并试图更好地解释。请再试一次!我编辑并试图更好地解释。请再试一次!