Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.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
有人知道SQL查询可以为多个列获取总和吗?_Sql_Select - Fatal编程技术网

有人知道SQL查询可以为多个列获取总和吗?

有人知道SQL查询可以为多个列获取总和吗?,sql,select,Sql,Select,我正在写一个应用程序,人们可以在杂货店做审计 答案(答案为“1”或“0”)分为几列(见屏幕截图),所有这些答案都连接到审核ID。是否有人知道SQL查询可以为审核id=x的多个列获取一个总和 查询应返回的答案(基于屏幕截图)应为9这将起作用: SELECT * FROM Table1; 1 1 1 1 1 1 2 3 3 3 3 3 select a ,sum(b+c+d+e+f) over (partition by a ) from Table1;

我正在写一个应用程序,人们可以在杂货店做审计

答案(答案为“1”或“0”)分为几列(见屏幕截图),所有这些答案都连接到
审核ID
。是否有人知道SQL查询可以为
审核id
=x的多个列获取一个
总和

查询应返回的答案(基于屏幕截图)应为
9

这将起作用:

SELECT * FROM Table1;
1   1   1   1   1   1
2   3   3   3   3   3

select a ,sum(b+c+d+e+f) over (partition by a ) from
Table1;
1   5
2   15
对于您的表,查询是:

select  audit_id,sum(antwoord+antwoord2+antwoord3+antwoord4+antwoord5+
antwoord6+antwoord7+antwoord8+antwoord9+antwoord10) over (partition by 
audit_id ) from
Tablename;

只需使用
+
操作符

SELECT antwoord
       + antwoord2
       ...
       + antwoord10
       FROM answers
       WHERE audit_id = x;

您可以尝试简单的
SUM

从奥迪ID=1的[表格]中选择antwoord+antwoord2+…+antwoord10


此查询对所有antwoord值求和

您需要手动添加所有列,如:

SELECT
    antwoord
    + antwoord2
    + antwoord3
    + antwoord4
    + antwoord5
    + antwoord6
    + antwoord7
    + antwoord8
    + antwoord9
    + antwoord10
FROM table 
WHERE audit_id = ?
但是,这里最好的方法是更改数据库设计,使其更适合您的用例。实际上,您需要的是一个包含3列的表:

audit_id
question_id
answer
合并的前两列是表的主键。每个答案生成一个新行

然后你就可以走了:

select sum(answer) from table where audit_id = ?

这类问题是由于使用了错误的数据库设计,