หัวข้อ: เขียนคำสั่ง SQL แบบนี้ยังไง เริ่มหัวข้อโดย: livenow ที่ 03 มิถุนายน 2019, 13:40:05 อยากขอคำแนะนำ สมมุติมีเกมส์ให้สมาชิกเล่น เราต้องการนับคะแนนเฉพาะ 10 นัดล่าสุดของแต่ละคน(แต่ละคนเล่นไม่เท่ากันบางคน 15 บางคน 12 บางคน 10 ครั้ง)
แบบนี้เราเขียน SQL ยังไง เอาแค่ 10 เกมส์ล่าสุดของทุกคน เป็น mysql นะ หัวข้อ: Re: เขียนคำสั่ง SQL แบบนี้ยังไง เริ่มหัวข้อโดย: raykung ที่ 04 มิถุนายน 2019, 11:00:32 1. เรียกข้อมูล 10 เกมล่าสุดออกมาก่อน
โค๊ด: SELECT `score` FROM `game` ORDER BY `id` DESC LIMIT 10 2. จับ Sum ซะโดยใช้ SELECT อีกอันครอบ โค๊ด: SELECT sum(`score`) หัวข้อ: Re: เขียนคำสั่ง SQL แบบนี้ยังไง เริ่มหัวข้อโดย: darkknightza ที่ 06 มิถุนายน 2019, 23:29:57 1. เรียกข้อมูล 10 เกมล่าสุดออกมาก่อน ขอเก็บด้วยคับโค๊ด: SELECT `score` FROM `game` ORDER BY `id` DESC LIMIT 10 2. จับ Sum ซะโดยใช้ SELECT อีกอันครอบ โค๊ด: SELECT sum(`score`) หัวข้อ: Re: เขียนคำสั่ง SQL แบบนี้ยังไง เริ่มหัวข้อโดย: KeepGoing ที่ 07 มิถุนายน 2019, 17:41:46 ผมทำตัวอย่างให้นะครับ
โค๊ด:
ถ้าต้องการผลรวม 10 รายการล่าสุดก็ใช้แบบนี้ครับ โค๊ด: SELECT sum(score) ซึ่งผลที่ได้ก็จะเป็น score = 105 แต่ถ้าเราก็ดึงข้อมูลของสมาชิกนั้นๆออกมา ให้ใช้เงื่อนไขเพิ่มครับเป็น WHERE member = ? ซึ่ง LIMIT คือตัวกำหนดว่าดึงมาเท่าไหร่ โดยถ้าดึงแบบล่าสุดก็กำหนดเป็น DESC ครับ โค๊ด: SELECT sum(score) ตามตัวอย่างผมรวมเฉพาะ 5 รายการล่าสุดนะครับ ก็จะได้ผลเป็น ีmember aaa score 5 เกมล่าสุด = 54 member bbb score 5 เกมล่าสุด = 50 หัวข้อ: Re: เขียนคำสั่ง SQL แบบนี้ยังไง เริ่มหัวข้อโดย: livenow ที่ 07 มิถุนายน 2019, 22:44:23 ผมทำตัวอย่างให้นะครับ โค๊ด:
ถ้าต้องการผลรวม 10 รายการล่าสุดก็ใช้แบบนี้ครับ โค๊ด: SELECT sum(score) ซึ่งผลที่ได้ก็จะเป็น score = 105 แต่ถ้าเราก็ดึงข้อมูลของสมาชิกนั้นๆออกมา ให้ใช้เงื่อนไขเพิ่มครับเป็น WHERE member = ? ซึ่ง LIMIT คือตัวกำหนดว่าดึงมาเท่าไหร่ โดยถ้าดึงแบบล่าสุดก็กำหนดเป็น DESC ครับ โค๊ด: SELECT sum(score) ตามตัวอย่างผมรวมเฉพาะ 5 รายการล่าสุดนะครับ ก็จะได้ผลเป็น ีmember aaa score 5 เกมล่าสุด = 54 member bbb score 5 เกมล่าสุด = 50 ขอบคุณครับที่อุตสาห์ทำตัวอย่าง แต่ผลลัพธ์ที่ต้องการยังไม่ได้ ต้องการรันครั้งเดียวแล้วได้ทุกยูซเซอร์และคะแนนคู่กันครับ ผลลัพธ์ประมาณ aaa ->54 bbb ->50 ccc ->49 หัวข้อ: Re: เขียนคำสั่ง SQL แบบนี้ยังไง เริ่มหัวข้อโดย: CherryX ที่ 07 มิถุนายน 2019, 22:59:02 ขอตามเก็บด้วย ขอบคุณคะ :wanwan017:
หัวข้อ: Re: เขียนคำสั่ง SQL แบบนี้ยังไง เริ่มหัวข้อโดย: adverwild ที่ 08 มิถุนายน 2019, 11:19:40 #table
no|score|player โค๊ด: $strSQL = "SELECT * FROM table GROUP BY player"; //ดึงรายชื่อผู้เล่นทุกคน ยังไม่ได้ทดสอบนะครับ :wanwan017: :wanwan017: หัวข้อ: Re: เขียนคำสั่ง SQL แบบนี้ยังไง เริ่มหัวข้อโดย: munz4 ที่ 08 มิถุนายน 2019, 12:12:32 คิดว่าอาจจะช่วยได้
https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_groupby_orderby |