mysql - 在 MySQL 中,获取接受 3 次 ANC 检查的孕妇数量

标签 mysql stored-procedures subquery

我正在开展一个项目,需要找出接受过 3 次 ANC(产前护理)检查的孕妇总数。

如果 4 列(visit1_date、visit2_date、visit3_date 和 Visit4_date)中的任意 3 列具有一定值,则据说孕妇会接受 3 次 ANC 检查。

为此,我需要计算表中给出的 4 列中的任意 3 列不为空的行数。

因此,基本上,需要找到其中任意三个的所有行的计数

visit1_date、visit2_date、visit3_date、visit4_date 不为 NULL

我的表格针对每个访问日期分别列出了列

我尝试过使用 IFNULL,但我不知道这是否有帮助。

最佳答案

在 MySQL 中, bool 运算被视为数字上下文中的数字,1 表示 true,0 表示 false。这使得计算非 NULL 值的数量变得很容易:

select count(*)
from table t
where ((visit1_date is not null) +
       (visit2_date is not null) +
       (visit3_date is not null) +
       (visit4_date is not null)
      ) >= 3;

关于mysql - 在 MySQL 中,获取接受 3 次 ANC 检查的孕妇数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30189550/

相关文章:

function - 通过数据库触发器邀请用户的授权

mysql - 查询 Mysql - 对于两个表中都不存在的值返回 0

php - 帮助逻辑

PHP mySQL - 你能返回一个带有数字索引的关联数组吗?

php - 如何搜索多个字段(SQL、PHP)?

c# - 在存储过程中添加多个参数时出现 ArgumentException

mysql - SELECT ... PROCEDURE procedure_name 的作用是什么?

sql - 从 MAX() 查询中获取相关字段

mysql - 结合两个复杂的查询

Mysql WHERE IN 子查询