Results 1 to 3 of 3

Thread: อยากทราบเรื่องคำสั่ง sum กับ max ใน sql

  1. #1
    Junior Member
    Join Date
    Oct 2006
    Posts
    14


    ไม่ทราบว่าคำสั่ง sum กับ max ในภาษา sql สามารถใช้ร่วมกันได้หรือไม่
    คือเคยได้ยินมาว่าคำสั่ง sum กับ max ใช้ร่วมกันแล้วมันจะทำงานพลาด

    ปัญหาคือต้องการรวมค่าก่อน จากนั้นจึงค่อย select เอาค่ารวมที่มากที่สุดออกมา

    เช่น

    id name date count
    1 a 1/10/49 1
    2 b 1/10/49 7
    3 c 2/10/49 5
    4 d 3/10/49 2
    5 e 3/10/49 1

    ต้องการให้ได้ค่า id = 1,2 ออกมา

    ส่วนอีกปัญหาคือ ไม่แน่ใจว่าจะ group by ด้วย field ไหน

    ไม่ทราบว่าจะเขียน query ยังไงดี ขอความกรุณาผู้รู้ตอบด้วย

  2. #2


    ในภาษา SQL นั้นสามารถใช้ คำสั่ง SUM กับ คำสั่ง MAX (รวมถึงคำสั่ง COUNT ด้วยก็ได้ครับ) ร่วมกันได้ครับ ไม่มีปัญหาครับ
    เช่น ...

    SELECT MAX(ID) , SUM(SCORE)/COUNT(*) FROM tbl_Student WHERE subject = 'CT212'

    SQL ด้านบนคือ การนำผลบวกของข้อมูลมาหารด้วยจำนวนข้อมูลทั้งหมดครับ

    ส่วนคำสั่ง GROUP BY นั้น ก็แล้วแต่เราครับ ว่าต้องการจัดเีรียงข้อมูลด้วย Field ไหนครับ เช่น ...

    SELECT MAX(ID) , SUM(SCPRE)/COUNT(*) FROM tbl_Student WHERE subject = 'CT212' GROUP BY ID

    คำสั่งด้านบนคือการ เรียงลำดับ โดย Field ID ครับ ...

  3. #3


    ปัญหาคือต้องการรวมค่าก่อน จากนั้นจึงค่อย select เอาค่ารวมที่มากที่สุดออกมา

    เช่น

    id name date count
    1 a 1/10/49 1
    2 b 1/10/49 7
    3 c 2/10/49 5
    4 d 3/10/49 2
    5 e 3/10/49 1

    ต้องการให้ได้ค่า id = 1,2 ออกมา[/b]
    คือที่อยากถามอ่ะคือตัวอย่างนี้มันเป็นงานที่คุณทำอ่ะเปล่าค่ะ คือว่าถ้าใช่แล้วคุณต้องการรวมค่าของอะไรอ่ะ แล้วอีกอย่างน่ะค่ะใช้ sum กับ max น่ะใช่ร่วมกันได้ค่ะ แต่แล้วแต่คนเขาจะใช้กันถ้าใช้สื่อความหมายผิดมันก็........... เพราะสำหรับ max คือค่าที่มากที่สุด ส่วน sum คือผลรวมน่ะค่ะ
    SELECT MAX(ID) , SUM(SCORE)/COUNT(*) FROM tbl_Student WHERE subject = 'CT212'

    เออถ้า อย่างคุณeaknarak โค้ดที่ได้น่ะมันจะ

    แสดง colum รหัสนักศักษา(คาดว่า) ที่มากที่สุดน่ะค่ะ กับ colum น่าจะเป็นคะแนนเฉลี่ย (คะแนนรวม/จำนวนนศที่ลง)
    จาก ตาราง tbl_student ที่วิชา ct212

    ถ้าคุณเขียนอย่างนี้อ่ะ user เขาจะคิดว่า คนที่มีรหัสนักศึกษาที่มากที่สุด ได้คะแนน เท่ากับคะแนนเฉลี่ยน่ะค่ะ

    แล้วอีกอย่างถ้าคุณใช้ SELECT MAX(ID) กับ ตัวอย่างของคุณน่ะรับรองที่ได้ออกมาก้อ ID = 5 ชัวร์


    เพราะฉนั้น ฉันคิดว่าน่าจะเอา ที่คุณ create ขึ้นมาให้ดูเลยจะได้บอกได้ไงค่ะ หรือไม่ก็เอาแนวคิด
    แบบคุณeaknarak บอกก็ไปใช้ประยุกต์

    ถ้าเราเข้าใจผิดก็ขอโทดด้วยน๊า






Members who have read this thread : 0

Actions : (View-Readers)

There are no names to display.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •