Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

แบบสอบถาม MySQL เพื่อรวม 3 ค่าที่แตกต่างกันในคอลัมน์ที่แสดงผลรวมของแต่ละค่าในชุดผลลัพธ์?


สำหรับสิ่งนี้ คุณสามารถใช้คำสั่ง CASE ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable( ProductName varchar(100), ProductRating ENUM('1','2','3')); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.50 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable ('Product-1',3); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DemoTable ('Product-2',1); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.08 วินาที) mysql> แทรกลงในค่า DemoTable ('Product-3',2); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DemoTable ('Product-1', 2); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงในค่า DemoTable ('Product-3',3); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า DemoTable ('Product-2', 2); แบบสอบถาม ตกลง ได้รับผลกระทบ 1 แถว (0.13 วินาที)mysql> แทรกลงในค่า DemoTable ('Product-3',3); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.10 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-------------+--------------+| ชื่อสินค้า | ProductRating |+-------------+--------------+| สินค้า-1 | 3 || สินค้า-2 | 1 || สินค้า-3 | 2 || สินค้า-1 | 2 || สินค้า-3 | 3 || สินค้า-2 | 2 || สินค้า-3 | 3 |+-------------+---------------------+7 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อรวมค่าที่แตกต่างกัน 3 ค่าในคอลัมน์ซึ่งแสดงผลรวมของแต่ละค่าในชุดผลลัพธ์ เรากำลังเพิ่มบนพื้นฐานของการให้คะแนนผลิตภัณฑ์ -

mysql> เลือก ProductName, sum( case when ProductRating=3 then 1 else 0 end ) เป็น Product_3_Rating, sum( case when ProductRating=2 then 1 else 0 end ) เป็น Product_2_Rating, sum( case when ProductRating=1 then 1 else 0 end ) เป็น Product_1_Rating จากกลุ่ม DemoTable ตาม ProductName;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-------------+-----------+------------- -----+-----------------+| ชื่อสินค้า | Product_3_Rating | Product_2_Rating | Product_1_Rating |+--------------------------+-----------------+--------------------- ----+--------------------------------+| สินค้า-1 | 1 | 1 | 0 || สินค้า-2 | 0 | 1 | 1 || สินค้า-3 | 2 | 1 | 0 |+-------------+-----------+-------------- ----+-----------------+3 แถวในชุด (0.00 วินาที)