Page 1 of 1

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

Posted: 04/08/2009 11:42 am
by aei_ou
สมมุตมีข้อมูลในตารางคือ 16,16,14,14,14,14,5,4,1

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

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

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

Posted: 04/08/2009 12:24 pm
by mindphp
ใช้ GROUP BY จะได้ อันดับ มา
ใช้ ORDER BY จะได้ ข้อมูลที่เรียงตามลำดับออกมา

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

Posted: 04/08/2009 1:04 pm
by 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 ไม่ได้
มึนเลย

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

Posted: 04/08/2009 1:40 pm
by mindphp
mindphp wrote:ใช้ GROUP BY จะได้ อันดับ มา
ใช้ ORDER BY จะได้ ข้อมูลที่เรียงตามลำดับออกมา
ต้อง Query มาสองครั้ง group และเรียงมันจะได้ค่า สูงสุด 1,2,3,...
เช่น มากสุด 1=16 ,2=14
ก็เอา 16 ,14 เป็นเงือนไขในการ query อีกครั้ง

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

Posted: 04/08/2009 3:06 pm
by aei_ou
ขอบคุณมากครับ ทำได้แล้ว

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