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

คำสั่ง MySQL นับจำนวนวันที่ซ้ำและแสดงวันที่ที่ซ้ำกัน

เมื่อต้องการนับจำนวนรายการตามวันที่ (เฉพาะส่วนวันที่ ไม่รวมเวลา) และแสดงเฉพาะวันที่ที่มีข้อมูลซ้ำ สามารถใช้ฟังก์ชัน DATE() ร่วมกับ GROUP BY และ COUNT(*)

ตัวอย่างการใช้งาน

สร้างตารางและเพิ่มข้อมูล timestamp:

mysql> create table DemoTable1321 (ArrivalDatetime timestamp);
mysql> insert into DemoTable1321 values(now());
mysql> insert into DemoTable1321 values('2019-01-10 12:34:00');
mysql> insert into DemoTable1321 values('2019-06-12 11:34:00');
mysql> insert into DemoTable1321 values('2019-06-12 04:50:00');
mysql> insert into DemoTable1321 values('2019-09-18 10:50:45');
mysql> insert into DemoTable1321 values('2019-06-12 06:10:20');

ข้อมูลทั้งหมด:

+---------------------+
| ArrivalDatetime     |
+---------------------+
| 2019-09-18 21:49:17 |
| 2019-01-10 12:34:00 |
| 2019-06-12 11:34:00 |
| 2019-06-12 04:50:00 |
| 2019-09-18 10:50:45 |
| 2019-06-12 06:10:20 |
+---------------------+

คำสั่งนับจำนวนรายการตามวันที่

mysql> select date(ArrivalDatetime) as OnlyDate, count(*) as Total
    -> from DemoTable1321
    -> group by date(ArrivalDatetime)
    -> order by date(ArrivalDatetime);

ผลลัพธ์

+------------+-------+
| OnlyDate   | Total |
+------------+-------+
| 2019-01-10 | 1     |
| 2019-06-12 | 3     |
| 2019-09-18 | 2     |
+------------+-------+

คำอธิบาย: DATE() ดึงเฉพาะส่วนวันที่จาก datetime, GROUP BY จัดกลุ่มตามวันที่, และ COUNT(*) นับจำนวนแถวในแต่ละกลุ่ม