select ค่าที่มากสุดอันดับ1 และอันดับ2

เกี่ยวกับ ปัญหาการใช้งาน การติดตั้ง ฐานข้อมูล MySql Oracle MSSQL ect...
การเขียน คำสั่ง SQL เพื่อดึกข้อมูล บอร์ดนี้ควรระบุโครงสร้างตารางของท่านในคำถามด้วยนะ

Moderator: mindphp

ภาพประจำตัวสมาชิก
aei_ou
PHP Full Member
PHP Full Member
โพสต์: 39
ลงทะเบียนเมื่อ: 22/01/2009 2:53 pm

select ค่าที่มากสุดอันดับ1 และอันดับ2

โพสต์ที่ยังไม่ได้อ่าน โดย aei_ou »

สมมุตมีข้อมูลในตารางคือ 16,16,14,14,14,14,5,4,1

query ข้อมูลที่มากที่สุด
อันดับ1 คือ 16,16
อันดับ2 คือ 14,14,14,14

ให้มันแสดงข้อมูลออกมาทั้งหมดทั้งอันดับ 1 และ 2 จะquery ยังไงคับ
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41380
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: select ค่าที่มากสุดอันดับ1 และอันดับ2

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ใช้ GROUP BY จะได้ อันดับ มา
ใช้ ORDER BY จะได้ ข้อมูลที่เรียงตามลำดับออกมา
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
aei_ou
PHP Full Member
PHP Full Member
โพสต์: 39
ลงทะเบียนเมื่อ: 22/01/2009 2:53 pm

Re: select ค่าที่มากสุดอันดับ1 และอันดับ2

โพสต์ที่ยังไม่ได้อ่าน โดย aei_ou »

คือผมจะ query อันแรกเอาค่าที่มากที่สุดออกมาแสดง จะได้ 16,16 เท่านั้น

แล้วก็สั่ง query อีกอัน เอาค่าที่มากที่สุดอันดับ 2 มา จะได้เฉพาะ 14,14,14,14

ถ้า group by มาแล้ว แล้ว order by desc เอาค่าสูง
สุดขึ้นก่อน แล้ว Limit 1 มันก็ได้ แต่ค่าที่สูงสุดอันดับ 1 มันมีมากกว่า1ค่า พอlimit 1 มันจะได้ค่าเดียว

แล้วข้อมูลในฐานข้อมูลจิงๆ เราจะไม่รู้เลยว่ามีอะไรมั่ง เพราะ ต้องselectตามเงื่อนไข where เราจะไม่รู้เลยว่าอันดับที่1 สูงสุดมีกี่ค่า อันดับ2มีกี่ค่า มันเลยใช้ limit ไม่ได้
มึนเลย
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41380
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: select ค่าที่มากสุดอันดับ1 และอันดับ2

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

mindphp เขียน:ใช้ GROUP BY จะได้ อันดับ มา
ใช้ ORDER BY จะได้ ข้อมูลที่เรียงตามลำดับออกมา
ต้อง Query มาสองครั้ง group และเรียงมันจะได้ค่า สูงสุด 1,2,3,...
เช่น มากสุด 1=16 ,2=14
ก็เอา 16 ,14 เป็นเงือนไขในการ query อีกครั้ง
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
aei_ou
PHP Full Member
PHP Full Member
โพสต์: 39
ลงทะเบียนเมื่อ: 22/01/2009 2:53 pm

Re: select ค่าที่มากสุดอันดับ1 และอันดับ2

โพสต์ที่ยังไม่ได้อ่าน โดย aei_ou »

ขอบคุณมากครับ ทำได้แล้ว

ผมใช้วิธี temp table เข้าช่วยครับ
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 91