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

SQL Queries สำหรับนับ Web Visits ต่อวัน, เดือน, ปี และรวม

Query หาจำนวน web visits ต่อวัน, ต่อเดือน, ต่อปี, และรวมใน MySQL:

สมมติ: database 'DBNAME' table 'tableName'

Query

SELECT COUNT(DISTINCT ip) FROM tableName
WHERE create_at >= LAST_DAY(NOW()) + INTERVAL 1 DAY - INTERVAL 1 MONTH
AND create_at < LAST_DAY(NOW()) + INTERVAL 1 DAY

คิวรีค้นหา range ของ DATETIME values เริ่มจากเดือนปัจจุบัน จนถึง (แต่ไม่รวม) เริ่มต้นเดือนถัดไป

สร้าง compound covering index บน (create_at, ip) คิวรีจะให้ count of web visits per day/month/year

MySQL สามารถ scan index range ที่จำเป็นได้

Note: Query ทำงานกับ TIMESTAMP data ได้เช่นกัน