Mysql 如何仅对特定行的值求和?
希望在mysql中获取表中两个特定行的总和Mysql 如何仅对特定行的值求和?,mysql,sql,Mysql,Sql,希望在mysql中获取表中两个特定行的总和 create table people( id int, firstname varchar(50), money int ); id firstname money 1 david 100 2 jack 200 3 bob 300 假设我只想要第1行(david)和第3行(bob)的总和。总数应为400。 我使用了这个查询: SELECT SUM(
create table people(
id int,
firstname varchar(50),
money int
);
id firstname money
1 david 100
2 jack 200
3 bob 300
假设我只想要第1行(david)和第3行(bob)的总和。总数应为400。
我使用了这个查询:
SELECT SUM(money)
FROM people
WHERE id = 1 AND 3;
但结果是100,而不是我预期的400。这是你的问题。您可以在中使用
大小写
和来获取此信息
从people中选择sum(在id=1或id=3的情况下,然后选择money else 0结束)
或
select sum(money) from people where id in (1, 3)
@Metal给出的答案是要走的路:
SELECT SUM(money)
FROM people
WHERE id IN (1, 3);
我发布这篇文章主要是为了解释为什么您当前的查询结果是100。原因是其中
条件:
WHERE id = 1 AND 3
只有当id=1
时才会为真,即大卫的记录。值3
的计算结果始终为true。因此,您只需对David的记录求和,得到总共100行。您必须使用或
来选择这两行
SELECT SUM(money)
FROM people
WHERE id = 1 OR id = 3;
您可以找到如下内容:
SELECT SUM(money)
FROM people
WHERE id =1
union
SELECT SUM(money)
FROM people
WHERE id =3
你必须这样做
SELECT SUM(money) as Money
FROM people
WHERE id Between 1 and 3