select a.pdx,count(*) cc
from an_stat a
left join iptoprt iop on iop.an=a.an
where a.dchdate between '2009-10-01' and '2010-09-30'
and iop.icd9 in ('9672','9671')
group by a.pdx
order by cc desc
limit 10
ประมาณนี้มั๊ยคับ
ข้อสังเกตุของการใช้ SQL แบบนี้ คือ order by cc desc limit 10 แล้วถ้า cc ที่อันดับ 11 มันมีค่าเท่ากัน กับอันดับที่ 10 มันก็หายไปสิครับ
ผมสมมุติตัวอย่างข้อมูลนะครับที่พอเราจัดเรียงตาม cc แล้วได้ออกมาแบบนี้
pdx name cases
H259 Senile cataract, unspecified 10
J459 Asthma, unspecified 10
D569 Thalassaemia, unspecified 10
H813 Other peripheral vertigo 8
N10 Acute tubulo-interstitial nephritis 6
C189 Malignant neoplasm of colon, unspecified 6
L89 Decubitus ulcer 6
F209 Schizophrenia, unspecified 6
P599 Neonatal jaundice, unspecified 6
K922 Gastrointestinal haemorrhage, unspecified 6
I48 Atrial fibrillation and flutter 6
D619 Aplastic anaemia, unspecified 5
I471 Supraventricular tachycardia 5
K291 Other acute gastritis 5
ถ้ากำหนด limit 10 จะเหลือแค่
pdx name cases
H259 Senile cataract, unspecified 10
J459 Asthma, unspecified 10
D569 Thalassaemia, unspecified 10
H813 Other peripheral vertigo 8
N10 Acute tubulo-interstitial nephritis 6
C189 Malignant neoplasm of colon, unspecified 6
L89 Decubitus ulcer 6
F209 Schizophrenia, unspecified 6
P599 Neonatal jaundice, unspecified 6
K922 Gastrointestinal haemorrhage, unspecified 6
ใช่ไหมครับ
แล้ว I48 Atrial fibrillation and flutter 6 ก็น้อยใจแย่สิครับ นับได้ 6 เหมือนกัน แต่ไม่ได้อยู่ใน list
ซึ่งถ้าสรุปจากตัวอย่างที่ผมให้มาแล้ว จะได้แบบนี้ครับ
อันดับ 1 มี count เป็น 10 มี 3 โรค H259, J459, D569
อันดับ 2 มี count เป็น 8 มี 1 โรค H813
อันดับ 3 มี count เป็น 6 มี 7 โรค N10, C189, L89, F209, P599, K922, I48
อันดับ 4 มี count เป็น 5 มี 3 โรค D619, I471, K291
ลองหาแนวทางแก้ไขนะครับ
อ้อ...อันนี้ไม่เกี่ยวกับการใส่ท่อช่วยหายใจนะครับ