Mengira Log Masuk Tapak Berbeza dalam MySQL
Matlamatnya adalah untuk menentukan bilangan lawatan unik ke tapak web tertentu dalam hari terakhir, berdasarkan pada lajur user_id dan site_id dalam jadual cp_visits. Walau bagaimanapun, pertanyaan awal nampaknya memberikan hasil pendua untuk lawatan tapak. Mari kita periksa cara membetulkan isu ini.
Pertanyaan yang disediakan cuba mengira lawatan yang berbeza, tetapi ia tidak termasuk klausa GROUP BY, yang penting untuk menghapuskan pendua. Akibatnya, pertanyaan mengembalikan berbilang baris untuk setiap site_id kerana ia tidak mengagregatkan hasil.
Untuk mengira log masuk tapak yang berbeza dengan betul, kita perlu mengumpulkan hasil mengikut site_id dan kemudian mengira user_id yang berbeza dalam setiap kumpulan. Pertanyaan yang diubah suai berikut menyelesaikannya:
SELECT COUNT(DISTINCT `user_id`) AS `countUsers`, COUNT(`site_id`) AS `countVisits`, `site_id` AS `site` FROM `cp_visits` WHERE `ts` >= DATE_SUB(NOW(), INTERVAL 1 DAY) GROUP BY `site_id`
Dalam pertanyaan yang disemak ini:
Dengan menggunakan pengubahsuaian ini, anda kini harus memperoleh kiraan tepat log masuk tapak unik untuk hari lalu daripada anda cp_visits table.
Atas ialah kandungan terperinci Bagaimana Mengira Log Masuk Tapak Unik dengan Tepat dalam MySQL dalam Hari Terakhir?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!