ผู้เขียน หัวข้อ: สอบถามวิธีการเรียงลำดับ มาก ไปหา น้อย  (อ่าน 6065 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ autobotz

  • Jr. Member
  • **
  • กระทู้: 85
  • Respect: 0
    • ดูรายละเอียด
0
รบกวนทุก ๆ ท่านด้วยนะครับ ผมขอสอบถามตาม รายงานที่แนบมาเลยครับ คือ ....
ติดอย่างเดียวที่จะเรียงลำดับผลรวมจำนวนครั้งที่มารับบริการ จากมากไปหาน้อย จะต้องทำอย่างไรครับ ???
นายทัศนัย  อ้ายพุก
เจ้าหน้าที่คอมพิวเตอร์ชั้น 4
โรงพยาบาลค่ายพิชัยดาบหัก

40 Client
Main Server : HP
CPU : Intel Xeon X3450 2.67GHz 8 cores 64 bit
RAM : 16 Gb
OS : CentOs 6.5
DB : MySQL Percona 5.5.33-31.1

Secondary Server HP
CPU : Intel Xeon X3450 2.67GHz 8 cores 64 bit
RAM : 4 Gb
OS : CentOs 6.5
DB : MySQL Percona 5.5.33-31.1


Client version 3.56.11.19
Structure  3.56.11.19

ออฟไลน์ nutsuanplu

  • Full Member
  • ***
  • กระทู้: 157
  • Respect: +3
    • ดูรายละเอียด
    • ฝากผลงาน web รายงานผล lab ด้วยครับ
Re: สอบถามวิธีการเรียงลำดับ มาก ไปหา น้อย
« ตอบกลับ #1 เมื่อ: สิงหาคม 16, 2012, 14:02:49 PM »
0
รบกวนทุก ๆ ท่านด้วยนะครับ ผมขอสอบถามตาม รายงานที่แนบมาเลยครับ คือ ....
ติดอย่างเดียวที่จะเรียงลำดับผลรวมจำนวนครั้งที่มารับบริการ จากมากไปหาน้อย จะต้องทำอย่างไรครับ ???


select a,b,c,count(d) as cc
form ....
where ....
group by d
order by cc desc

ประมาณนี้ครับ
ณัฐวุฒิ วงษ์แพทย์
นักวิชาการคอมพิวเตอร์
โรงพยาบาลอู่ทอง จังหวัดสุพรรณบุรี

ออฟไลน์ autobotz

  • Jr. Member
  • **
  • กระทู้: 85
  • Respect: 0
    • ดูรายละเอียด
Re: สอบถามวิธีการเรียงลำดับ มาก ไปหา น้อย
« ตอบกลับ #2 เมื่อ: สิงหาคม 16, 2012, 15:46:17 PM »
0

select a,b,c,count(d) as cc
form ....
where ....
group by d
order by cc desc

ประมาณนี้ครับ

ทำแล้วยังเรียงไม่ได้อยู่ดีครับ  งง เลย 
นายทัศนัย  อ้ายพุก
เจ้าหน้าที่คอมพิวเตอร์ชั้น 4
โรงพยาบาลค่ายพิชัยดาบหัก

40 Client
Main Server : HP
CPU : Intel Xeon X3450 2.67GHz 8 cores 64 bit
RAM : 16 Gb
OS : CentOs 6.5
DB : MySQL Percona 5.5.33-31.1

Secondary Server HP
CPU : Intel Xeon X3450 2.67GHz 8 cores 64 bit
RAM : 4 Gb
OS : CentOs 6.5
DB : MySQL Percona 5.5.33-31.1


Client version 3.56.11.19
Structure  3.56.11.19

ออฟไลน์ autobotz

  • Jr. Member
  • **
  • กระทู้: 85
  • Respect: 0
    • ดูรายละเอียด
Re: สอบถามวิธีการเรียงลำดับ มาก ไปหา น้อย
« ตอบกลับ #3 เมื่อ: สิงหาคม 17, 2012, 10:04:31 AM »
0
จากการทดลองทำแล้ว ก็ยังเรียงลำดับไม่ได้อยู่ดี ถ้ายังไงรบกวนทุก ๆ ท่านช่วยแนะนำแนวทางแก้ไขด้วยครับ  ^^
นายทัศนัย  อ้ายพุก
เจ้าหน้าที่คอมพิวเตอร์ชั้น 4
โรงพยาบาลค่ายพิชัยดาบหัก

40 Client
Main Server : HP
CPU : Intel Xeon X3450 2.67GHz 8 cores 64 bit
RAM : 16 Gb
OS : CentOs 6.5
DB : MySQL Percona 5.5.33-31.1

Secondary Server HP
CPU : Intel Xeon X3450 2.67GHz 8 cores 64 bit
RAM : 4 Gb
OS : CentOs 6.5
DB : MySQL Percona 5.5.33-31.1


Client version 3.56.11.19
Structure  3.56.11.19

ออฟไลน์ nutsuanplu

  • Full Member
  • ***
  • กระทู้: 157
  • Respect: +3
    • ดูรายละเอียด
    • ฝากผลงาน web รายงานผล lab ด้วยครับ
Re: สอบถามวิธีการเรียงลำดับ มาก ไปหา น้อย
« ตอบกลับ #4 เมื่อ: สิงหาคม 17, 2012, 10:25:05 AM »
0
จากการทดลองทำแล้ว ก็ยังเรียงลำดับไม่ได้อยู่ดี ถ้ายังไงรบกวนทุก ๆ ท่านช่วยแนะนำแนวทางแก้ไขด้วยครับ  ^^

ก็เรียงได้นะครับ แต่ควรอย่างยิ่งที่จะต้องใส่เงื่อนไขช่วงเวลาไปด้วย
ถ้าฐานข้อมูลใหญ่ๆ จะเอ๋อเร๋อ ได้ครับ

select concat(i.code," ",i.name)as dx_name,count(distinct v.vn)as count_vn,count(distinct v.hn)as count_hn
from vn_stat v
left outer join ovst o on o.vn = v.vn
left outer join icd101 i on i.code = v.pdx
where v.pdx <> "" and v.vstdate between "2012-01-01" and "2012-01-10"
group by i.name
order by count_vn desc
limit 20
ณัฐวุฒิ วงษ์แพทย์
นักวิชาการคอมพิวเตอร์
โรงพยาบาลอู่ทอง จังหวัดสุพรรณบุรี

ออฟไลน์ autobotz

  • Jr. Member
  • **
  • กระทู้: 85
  • Respect: 0
    • ดูรายละเอียด
Re: สอบถามวิธีการเรียงลำดับ มาก ไปหา น้อย
« ตอบกลับ #5 เมื่อ: สิงหาคม 17, 2012, 13:36:38 PM »
0
อ้างถึง
ก็เรียงได้นะครับ แต่ควรอย่างยิ่งที่จะต้องใส่เงื่อนไขช่วงเวลาไปด้วย
ถ้าฐานข้อมูลใหญ่ๆ จะเอ๋อเร๋อ ได้ครับ

select concat(i.code," ",i.name)as dx_name,count(distinct v.vn)as count_vn,count(distinct v.hn)as count_hn
from vn_stat v
left outer join ovst o on o.vn = v.vn
left outer join icd101 i on i.code = v.pdx
where v.pdx <> "" and v.vstdate between "2012-01-01" and "2012-01-10"
group by i.name
order by count_vn desc
limit 20


ขอบคุณมากครับ ....เดี๋ยวลองดูอีกรอบครับ ... 
นายทัศนัย  อ้ายพุก
เจ้าหน้าที่คอมพิวเตอร์ชั้น 4
โรงพยาบาลค่ายพิชัยดาบหัก

40 Client
Main Server : HP
CPU : Intel Xeon X3450 2.67GHz 8 cores 64 bit
RAM : 16 Gb
OS : CentOs 6.5
DB : MySQL Percona 5.5.33-31.1

Secondary Server HP
CPU : Intel Xeon X3450 2.67GHz 8 cores 64 bit
RAM : 4 Gb
OS : CentOs 6.5
DB : MySQL Percona 5.5.33-31.1


Client version 3.56.11.19
Structure  3.56.11.19

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,347
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
Re: สอบถามวิธีการเรียงลำดับ มาก ไปหา น้อย
« ตอบกลับ #6 เมื่อ: สิงหาคม 17, 2012, 22:30:09 PM »
0
select concat(i.code," ",i.name)as dx_name,count(distinct v.vn)as count_vn,count(distinct v.hn)as count_hn
............


พยายามเขียนให้มีเว้นวรรคจะดีกว่าครับ คือก่อน as เว้นวรรคสักนิดจะดีกว่า
แต่พวก aggregate function เช่น  count() ต้องติดกันนะครับ
ส่วน distinct ใช้ได้ 2 กรณี คือ distinct(hn) อันนี้ใช้วงเล็บติดกับ distinct ได้
แต่ count(distinct hn) แบบนี้ไม่ต้องมีวงเล็บ [อาจจะใช้ count(distinc(hn)) ก็ได้ แต่ผมไม่เคยใช้ครับ]
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)