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

MySQL- GROUP และ COUNT ตามวันที่?


คุณสามารถใช้ GROUP BY clause และ COUNT() สำหรับสิ่งนี้ ไวยากรณ์มีดังนี้ −

เลือก yourColumnName1,yourColumnName2,..N,COUNT(*) เป็น anyAliasName จาก yourTableNameGROUP BY yourColumnName1,yourColumnName2;

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง GroupAndCountByDate -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> วันที่เดินทาง, -> ShopId int, -> PRIMARY KEY(Id) -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.79 วินาที) 

ตอนนี้คุณสามารถแทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่า GroupAndCountByDate(TripDate,ShopId) ('2019-01-31',10);เคียวรีตกลง 1 แถวได้รับผลกระทบ (0.52 วินาที)mysql> แทรกลงในค่า GroupAndCountByDate(TripDate, ShopId) ('2019 -02-01',15);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที)mysql> แทรกลงในค่า GroupAndCountByDate(TripDate,ShopId) ('2019-01-31',10); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.23) sec)mysql> แทรกลงในค่า GroupAndCountByDate (TripDate, ShopId) ('2019-02-01', 15); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.31 วินาที) mysql> แทรกลงในค่า GroupAndCountByDate (TripDate, ShopId) ('2019- 03-23',20);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที)mysql> แทรกลงในค่า GroupAndCountByDate(TripDate,ShopId) ('2019-04-21',25); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที )mysql> แทรกลงในค่า GroupAndCountByDate (TripDate, ShopId) ('2019-03-13', 20); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงในค่า GroupAndCountByDate (TripDate, ShopId) ('2019-04 -06',25);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.17 วินาที)

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

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

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+----+------------+-------+| รหัส | วันที่เดินทาง | ShopId |+----+-----------+-------+| 1 | 2019-01-31 | 10 || 2 | 2019-02-01 | 15 || 3 | 2019-01-31 | 10 || 4 | 2019-02-01 | 15 || 5 | 2019-03-23 ​​| 20 || 6 | 2019-04-21 | 25 || 7 | 2019-03-13 | 20 || 8 | 2019-04-06 | 25 |+----+------------+-------+8 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามไปยัง GROUP และนับตามวันที่ -

mysql> เลือก TripDate,ShopId,COUNT(*) เป็น TOTALTRIP -> จาก GroupAndCountByDate -> จัดกลุ่มตาม TripDate,ShopId;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+------------+---------+-----------+| วันที่เดินทาง | ShopId | TOTALTRIP |+-----------+-------+-----------+| 2019-01-31 | 10 | 2 || 2019-02-01 | 15 | 2 || 2019-03-23 ​​| 20 | 1 || 2019-04-21 | 25 | 1 || 2019-03-13 | 20 | 1 || 2019-04-06 | 25 | 1 |+------------+-------+-----------+6 แถวในชุด (0.00 วินาที)