SQL查询同时获取分组依据和不同值
我在尝试为此表定义 SQL 查询时遇到问题:
有一个患者表及其在访视时记录的体重读数,其中包含以下列:
- 患者 ID
- 体重读数
- 访视 ID(每次访视一个)
换句话说,如果分两次如果记录两个访问 ID 相同,则在同一访问日期读取了两个体重读数。
我有这样的查询“获取所有至少有两个体重读数高于 150 的患者”:
select patient_id
from patients
where weight_val > 50
group by patient_id
having count(*) >= 2
这是我的问题:如果我想修改此查询以便我可以查询以下内容该怎么办:
- “获取所有至少有两个体重读数高于 150 的患者” 150 在不同的就诊中”
- “在同一次就诊中获得至少两个体重读数高于 150 的所有患者”
是否可以在不删除“group by”语句的情况下做到这一点?如果没有,您推荐的方法是什么?如果更容易的话,我也愿意添加日期列而不是访问 ID(我正在使用 Oracle)。
I'm having trouble trying to define the SQL query for this table:
There's a table of patients and their weight readings recorded on visits with the following columns:
- patient ID
- weight reading
- visit ID (one per visit)
In other words, if in two records two visit IDs are the same, then two weight readings have been taken on that same visit date.
I have this query to "get all patients with at least two weight readings above 150":
select patient_id
from patients
where weight_val > 50
group by patient_id
having count(*) >= 2
Here's my problem: What if I want to modify this query so that I can query the following:
- "get all patients with at least two weight readings above 150 on different visits"
- "get all patients with at least two weight readings above 150 on the same visit"
Is it possible to do it without removing the "group by" statement? if not, what is your recommended approach? I'm also open to adding a date column instead of visit ID if it makes it easier (i'm using Oracle).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在不同就诊中至少有两次体重读数高于 150 的患者
使用:
在同一次就诊中至少两次体重读数高于 150 的患者
使用:
Patients with at least two weight readings above 150 on different visits
Use:
Patients with at least two weight readings above 150 on the same visit
Use:
尝试这样:
1.
2.
try like this:
1.
2.