如何从 Patient_id 中找到最常见的数字
Posted
技术标签:
【中文标题】如何从 Patient_id 中找到最常见的数字【英文标题】:How do I find the most frequent number from patient_id 【发布时间】:2021-06-03 09:20:24 【问题描述】:要从中检索数据的表格图像:
REM 录取表
插入录取值 (205,101,'2/2/2011','HB',114,'P','21/2/2011');
【问题讨论】:
【参考方案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;
【讨论】:
感谢您的帮助!!以上是关于如何从 Patient_id 中找到最常见的数字的主要内容,如果未能解决你的问题,请参考以下文章
如何从向量或数组中选择最常见的数字?(TOP5 toplist)C++
当我从参数接收到 Iterable 时,如何使用带有 java8 的 Lamba 表达式从给定值中找到最接近的数字? [复制]