Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.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 如何仅对特定行的值求和?_Mysql_Sql - Fatal编程技术网

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(

希望在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(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