sql - 如何使用 postgres sql 按年份间隔选择行?
问题描述
我有一张表格,里面有一些来自健康公共系统患者的数据。我在这张桌子上有两个日期,疾病通知的日期和患者的出生日期,像这样:
notification_date | birth_date
------------------+-----------------
2013-02-19 | 2013-02-17
2015-01-28 | 1984-01-22
2015-02-08 | 1989-10-04
2015-01-09 | 1984-05-25
2016-01-28 | 1988-04-26
2016-01-06 | 1986-05-20
如您所见,通过从这两列中获取年份间隔,我可以了解患者在收到疾病通知时的年龄。我需要查询通知疾病时有多少人的年龄小于 4 岁。
像这样的东西:
SELECT COUNT(id)
FROM notifications
WHERE age(notification_date, birth_date) < 4 years;
这个查询是否可能需要特定的时间间隔?
解决方案
我会使用直接日期比较:
select count(*)
from notifications n
where notification_date < birthdate + interval '4 year';
使用诸如此类的功能age()
似乎不必要地麻烦。
推荐阅读
- python - 如何记住以前循环输入的数字?
- python - python 正则表达式提取匹配对象
- java - 在 Java 中计算点击次数
- flutter - 如何避免streambuilder执行不必要的时间
- optimization - 如何解释 CPLEX CP Optimizer Statistics 页面?
- javascript - 如何在用户输入 JavaScript 的 if 语句中包含 3 个条件
- node.js - 通过 RTU 充当 modbus 从站 - 通信问题
- python-3.x - 在我的 .tsv 文件的几千行之后,我从这些值创建的字典开始丢失一些行
- javascript - 等待发布请求完成
- windows - 您可以在网络上连接的设备上启用 Windows 服务吗?