gpt4 book ai didi

SQL 查询同时获取 group by 和不同的值

转载 作者:行者123 更新时间:2023-12-04 02:55:43 25 4
gpt4 key购买 nike

我在尝试为此表定义 SQL 查询时遇到问题:

有一个患者表格及其在访问时记录的体重读数,其中包含以下列:

  • 患者 ID
  • 体重读数
  • 访问 ID(每次访问一个)

  • 换句话说,如果两个记录中的两个访问 ID 相同,则在同一个访问日期获取了两个体重读数。

    我有这个查询来“让所有患者的体重读数至少超过 150”:
    select patient_id 
    from patients
    where weight_val > 50
    group by patient_id
    having count(*) >= 2

    这是我的问题:如果我想修改此查询以便我可以查询以下内容,该怎么办:
  • “让所有患者在不同的访问中至少有两个体重读数高于 150”
  • “让所有患者在同一次就诊中至少有两个体重读数高于 150”

  • 是否可以在不删除“group by”语句的情况下执行此操作?如果没有,您推荐的方法是什么?如果方便的话,我也愿意添加日期列而不是访问 ID(我使用的是 Oracle)。

    最佳答案

    不同就诊中至少有两个体重读数高于 150 的患者

    用:

      SELECT p.patient_id 
    FROM PATIENTS p
    WHERE p.weight_val > 150
    GROUP BY p.patient_id
    HAVING COUNT(DISTINCT p.visit_id) >= 2

    同一次就诊时至少有两个体重读数高于 150 的患者

    用:
      SELECT DISTINCT p.patient_id 
    FROM PATIENTS p
    WHERE p.weight_val > 150
    GROUP BY p.patient_id, p.visit_id
    HAVING COUNT(*) >= 2

    关于SQL 查询同时获取 group by 和不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3473239/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com