【问题标题】:Show all patients grouped into weight groups. Show the total amount of patients in each weight group. Order the list by the weight group decending显示按体重分组的所有患者。显示每个体重组的患者总数。按重量组降序排列列表
【发布时间】:2022-10-13 08:56:17
【问题描述】:

显示按体重分组的所有患者。 显示每个体重组的患者总数。 按重量组降序排列列表。

例如,如果他们的体重在 100 到 109 之间,他们将被归入 100 体重组,110-119 = 110 体重组,等等。

【问题讨论】:

  • 考虑FLOOR(weight/10) 或其他东西作为您的排序字段

标签: mysql sql database oracle


【解决方案1】:

所以像这样的东西?

SELECT FLOOR(t.weight/10) * 10 as weightGroup, count(*) as cnt
FROM YourTable t
GROUP BY FLOOR(t.weight/10)
ORDER BY FLOOR(t.weight/10) DESC 

【讨论】:

    【解决方案2】:

    我倾向于尝试避免使用昂贵的浮点函数,例如 FLOOR()CEIL()

    将 FLOOR() 数字添加到下一个较小整数的技巧是在其上加上 0.5,然后使用 CONVERT() 将其硬转换为有符号整数。

    WITH
    --- some sample data, don't use in final query ...
    indata(id,lb) AS (
              SELECT  1,101
    UNION ALL SELECT  2,102 
    UNION ALL SELECT  3,103 
    UNION ALL SELECT  4,104 
    UNION ALL SELECT  5,105 
    UNION ALL SELECT  6,106 
    UNION ALL SELECT  7,107 
    UNION ALL SELECT  8,108 
    UNION ALL SELECT  9,109 
    UNION ALL SELECT 10,110 
    UNION ALL SELECT 11,111 
    UNION ALL SELECT 12,112 
    UNION ALL SELECT 13,113 
    UNION ALL SELECT 14,114 
    UNION ALL SELECT 15,115 
    UNION ALL SELECT 16,116 
    UNION ALL SELECT 17,117 
    UNION ALL SELECT 18,118 
    UNION ALL SELECT 19,119 
    UNION ALL SELECT 20,120 
    )
    -- real query starts here ...
    SELECT
      CONVERT ((lb  / 10 - 0.5), SIGNED)  AS grp 
    , COUNT(*) AS pat_count
    FROM indata
    GROUP BY grp
    ORDER BY grp DESC;
    -- out  grp | patcount 
    -- out -----+----------
    -- out   12 |        1
    -- out   11 |       10
    -- out   10 |        9
    

    【讨论】:

      【解决方案3】:

      这可能会有所帮助 选择计数 (patient_id), floor (weight/10)*10 作为 weight_group 来自患者 按重量分组 按 weight_group desc 排序;

      【讨论】:

        猜你喜欢
        • 2012-05-06
        • 1970-01-01
        • 1970-01-01
        • 2022-07-20
        • 1970-01-01
        • 2022-01-02
        • 1970-01-01
        • 1970-01-01
        • 2021-12-14
        相关资源
        最近更新 更多