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

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

Moderator: mindphp

User avatar
aei_ou
PHP Full Member
PHP Full Member
Posts: 39
Joined: 22/01/2009 2:53 pm

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

Post by aei_ou » 04/08/2009 11:42 am

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

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

ให้มันแสดงข้อมูลออกมาทั้งหมดทั้งอันดับ 1 และ 2 จะquery ยังไงคับ

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 22585
Joined: 22/09/2008 6:18 pm
Contact:

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

Post by mindphp » 04/08/2009 12:24 pm

ใช้ 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

User avatar
aei_ou
PHP Full Member
PHP Full Member
Posts: 39
Joined: 22/01/2009 2:53 pm

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

Post by aei_ou » 04/08/2009 1:04 pm

คือผมจะ 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 ไม่ได้
มึนเลย

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 22585
Joined: 22/09/2008 6:18 pm
Contact:

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

Post by mindphp » 04/08/2009 1:40 pm

mindphp wrote:ใช้ 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

User avatar
aei_ou
PHP Full Member
PHP Full Member
Posts: 39
Joined: 22/01/2009 2:53 pm

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

Post by aei_ou » 04/08/2009 3:06 pm

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

ผมใช้วิธี temp table เข้าช่วยครับ

Post Reply

Return to “SQL - Database”

Users browsing this forum: No registered users and 2 guests