【问题标题】:How do I find the most frequent number from patient_id如何从 Patient_id 中找到最常见的数字
【发布时间】:2021-06-03 09:20:24
【问题描述】:

要从中检索数据的表格图像:

REM 录取表

插入录取值 (205,101,'2/2/2011','HB',114,'P','21/2/2011');

【问题讨论】:

    标签: sql oracle top-n


    【解决方案1】:

    什么是“最常见的数字”?入院次数最多的患者?如果是的话,那么

    select patient_id
    from (select patient_id,
                 rank() over (order by count(*) desc) rnk
          from admission
          group by patient_id
         )
    where rnk = 1;
    

    【讨论】:

    • 再次感谢帮助!
    【解决方案2】:

    在这两种情况下,如果您只需要 Patient_id,您可以从选择中删除 count(*) AS patient_max

    甲骨文

    SELECT * FROM (
     SELECT patient_id,count(*) AS patient_max
               FROM admission 
               GROUP BY patient_id 
               ORDER BY count(*) DESC
     ) 
     WHERE ROWNUM <= 1;
    

    Postgresq

     SELECT patient_id,count(*) AS patient_max
               FROM admission 
               GROUP BY patient_id 
               ORDER BY count(*) DESC 
               LIMIT 1;
    

    【讨论】:

    • 这在 Oracle 中不起作用,那里没有限制。
    • 对我习惯了posrgesql,我更正了我的答案
    • 感谢您的帮助!!
    【解决方案3】:
    select patient_id ,count(*) as patient_count
      from admission group by patient_id 
    order by patient_count desc FETCH FIRST 1 ROWS ONLY;
    

    如果你只想要 Patient_id 那么:

    WITH temp as 
    (
    select patient_id ,count(*) as patient_count
          from admission group by patient_id 
        order by patient_count desc FETCH FIRST 1 ROWS ONLY
    )
    select patient_id from temp;
    

    【讨论】:

    • @jOHNJACOBJINGLE 首先你接受了这个答案,现在你又拒绝了。至少为答案投票
    • 对不起,我对堆栈溢出很陌生,我以为我可以一次接受多个答案。我无法投票,因为他们不允许我这样做,直到我达到一定的排名。它说我需要 15 声望。感谢您的帮助!
    • 没有问题。你可以点赞我的回答。您需要点击我的答案左侧的向上箭头
    【解决方案4】:

    按 Patient_id 计数分组并使用 FETCH FIRST 1 ROWS ONLY:

    select count(*) cnt, patient_id 
      from admission group by patient_id 
    order by cnt desc FETCH FIRST 1 ROWS ONLY;
    

    如果您有 Oracle

    select *
    from  
    (select count(*) cnt, patient_id 
          from admission group by patient_id 
        order by cnt desc ) 
    where ROWNUM = 1;
    

    【讨论】:

    • 感谢您的帮助!!
    猜你喜欢
    • 1970-01-01
    • 2014-08-19
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    • 2021-09-22
    相关资源
    最近更新 更多