ホームページ >データベース >mysql チュートリアル >過去 1 日以内の MySQL での一意のサイト ログインを正確にカウントするにはどうすればよいですか?

過去 1 日以内の MySQL での一意のサイト ログインを正確にカウントするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-30 07:27:10541ブラウズ

How to Accurately Count Unique Site Logins in MySQL within the Last Day?

MySQL での個別のサイト ログインのカウント

目標は、過去 1 日以内の特定の Web サイトへのユニークな訪問数を決定することです。 cp_visits テーブルの user_id 列と site_id 列。ただし、最初のクエリでは、サイト訪問に関して重複した結果が提供されているようです。この問題を修正する方法を見てみましょう。

提供されたクエリは個別の訪問をカウントしようとしますが、重複を排除するために重要な GROUP BY 句が含まれていません。その結果、結果が集計されないため、クエリは site_id ごとに複数の行を返します。

個別のサイト ログインを正確にカウントするには、結果を site_id でグループ化し、各サイト内の個別の user_id をカウントする必要があります。グループ。次の変更されたクエリはこれを実現します:

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`

この変更されたクエリでは:

  • COUNT(DISTINCT user_id) は各サイトを訪問したユニーク ユーザーの数を計算します。
  • COUNT(site_id) は、各サイトへの合計訪問数をカウントします。 site.
  • GROUP BY site_id` は site_id` ごとに結果を集計し、各サイトの一意の訪問数を確実にカウントします。

これらの変更を適用することで、正確な訪問数を取得できるようになります。 cp_visits テーブルからの過去 1 日の一意のサイト ログイン。

以上が過去 1 日以内の MySQL での一意のサイト ログインを正確にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。