คุณสามารถใช้ฟังก์ชันการรวม SUM() กับ GROUP BY clause เพื่อทำสิ่งนี้ได้
ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −
mysql> สร้างตาราง SelectPerMonthDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> Price int, -> PurchaseDate datetime -> );Query OK, 0 แถวได้รับผลกระทบ (2.34 วินาที)
ตัวอย่าง
แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert โดยหนึ่งในนั้นจะเป็นวันที่ซื้อ แบบสอบถามมีดังต่อไปนี้ −
mysql> แทรกลงในค่า SelectPerMonthDemo(Price,PurchaseDate) (600,date_add(now(),interval -1 month));Query OK, 1 แถวได้รับผลกระทบ (0.42 วินาที)mysql> แทรกลงใน SelectPerMonthDemo(Price,PurchaseDate) values(600,date_add(now(),interval 2 month));Query OK, 1 แถวได้รับผลกระทบ (0.34 วินาที)mysql> แทรกลงใน SelectPerMonthDemo(Price,PurchaseDate) values(400,now());Query OK, 1 แถว ได้รับผลกระทบ (0.20 วินาที) mysql> แทรกลงในค่า SelectPerMonthDemo (ราคา, วันที่ซื้อ) (800, date_add (ตอนนี้ (), ช่วงเวลา 3 เดือน)); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงใน SelectPerMonthDemo (ราคา, วันที่ซื้อ ) ค่า (900,date_add (ตอนนี้ () ช่วงเวลา 4 เดือน)); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.10 วินาที) mysql> แทรกลงใน SelectPerMonthDemo (ราคา, PurchaseDate) ค่า (100, date_add (ตอนนี้ () ช่วงเวลา 4 เดือน )); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.22 วินาที) mysql> แทรกลงในค่า SelectPerMonthDemo (ราคา, วันที่ซื้อ) (1200, date_add (ตอนนี้ () ช่วงเวลา -1 เดือน)); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.09 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังต่อไปนี้ −
mysql> เลือก *จาก SelectPerMonthDemo;
ผลลัพธ์
ต่อไปนี้เป็นผลลัพธ์ที่แสดงราคาและวันที่ซื้อของผลิตภัณฑ์ -
<ก่อนหน้า>+----+-------+---------------------+| รหัส | ราคา | วันที่ซื้อ |+----+-------+---------------------+| 1 | 600 | 2019-01-10 22:39:30 || 2 | 600 | 2019-04-10 22:39:47 || 3 | 400 | 2019-02-10 22:40:03 || 4 | 800 | 2019-05-10 22:40:18 || 5 | 900 | 2019-06-10 22:40:29 || 6 | 100 | 2019-06-10 22:40:41 || 7 | 1200 | 2019-01-10 22:40:50 |+----+-------+---------------------+7 แถวใน ตั้งค่า (0.00 วินาที)นี่คือแบบสอบถามเพื่อรับบันทึกตามแต่ละเดือนตามวันที่ซื้อ -
mysql> เลือก monthname(PurchaseDate) เป็น MONTHNAME, sum(Price) fromSelectPerMonthDemo-> จัดกลุ่มตามเดือน (PurchaseDate);
ผลลัพธ์
<ก่อนหน้า>+-----------+-----------+| MONTHNAME | ผลรวม(ราคา) |+-----------+-----------+| มกราคม | 1800 || เมษายน | 600 || กุมภาพันธ์ | 400 || พฤษภาคม | 800 || มิถุนายน | 1,000 |+-----------+------------+5 แถวในชุด (0.07 วินาที)หากคุณไม่ต้องการชื่อเดือน (เฉพาะหมายเลขเดือน) ให้ใช้แบบสอบถามต่อไปนี้ −
mysql> เลือกเดือน (PurchaseDate), ผลรวม (ราคา) จาก SelectPerMonthDemo-> กลุ่มตามเดือน (PurchaseDate);