php - SQL 计算多列中的某些值

标签 php mysql sql

我有一个包含 3 个可能值 (1,0,NA) 的表

Customers | Answer1 | Answer2 | Answer3
-----------------------------------
John      |   1     |  0     |  NA 
Dave      |   NA    |  0     |  NA      
Jane      |   0     |  1     |  1
Tom       |   1     |  0     |  0

我试图只计算 1 和 0 作为值。

我试图实现的查询结果是:

Customers | Total_Score
-----------------------
John      |    2
Dave      |    1
Jane      |    3
Tom       |    3

使用 MySQL 作为数据库。

我尝试使用: SELECT Customers, COUNT(Answer1 + Answer2 + Answer3) AS Total_Score FROM exam. SQL 查询只对值求和,不计算值 1 和 0。感谢您的帮助。我一直被困住并一直在寻找,但没有运气。

最佳答案

如果您有同一客户的多个记录,则执行

SELECT Customers,
       sum((Answer1 <> 'NA') + (Answer2 <> 'NA') + (Answer3 <> 'NA')) AS Total_Score 
FROM exam
group by Customers

或者如果每个客户只有一个

SELECT Customers,
       (Answer1 <> 'NA') + (Answer2 <> 'NA') + (Answer3 <> 'NA') AS Total_Score 
FROM exam

SQLFiddle demo

关于php - SQL 计算多列中的某些值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28248856/

相关文章:

php - 仅使用一次并从头开始

php - 在从数据库获取设置的函数上我遇到了错误

php - 数学函数在 PHP 中运行良好,但在 Objective C 中运行错误

php - SQLSTATE[HY000] [1045] 用户 'root' @'localhost' 的访问被拒绝(使用密码 : NO) . DB_HOST 设置为 localhost

mysql - 有没有更好的方法来编写这个特定的查询?

sql - 通过外键约束强制关系?

php - 获取按每个帖子的多个元数据条目排序的自定义 wp-posts

mysql - 在没有 DATE 字段的 SQL 中选择日期范围

mysql - 像 SQL 查询一样分组

sql - 在 postgres 中的大表上按日期查询加快分组