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

เลือกและกรองระเบียนตามเดือนในตาราง MySQL หรือไม่


คุณสามารถใช้ฟังก์ชันการรวม 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);

ผลลัพธ์

<ก่อนหน้า>+---------------------+-----------+| เดือน(PurchaseDate) | ผลรวม(ราคา) |+---------------------+-----------+| 1 | 1800 || 4 | 600 || 2 | 400 || 5 | 800 || 6 | 1,000 |+---------------------+-----------+5 แถวในชุด (0.00 วินาที)