【发布时间】:2021-06-03 09:20:24
【问题描述】:
要从中检索数据的表格图像:
REM 录取表
插入录取值 (205,101,'2/2/2011','HB',114,'P','21/2/2011');
【问题讨论】:
要从中检索数据的表格图像:
REM 录取表
插入录取值 (205,101,'2/2/2011','HB',114,'P','21/2/2011');
【问题讨论】:
什么是“最常见的数字”?入院次数最多的患者?如果是的话,那么
select patient_id
from (select patient_id,
rank() over (order by count(*) desc) rnk
from admission
group by patient_id
)
where rnk = 1;
【讨论】:
在这两种情况下,如果您只需要 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;
【讨论】:
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;
【讨论】:
按 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;
【讨论】: