sql >> データベース >  >> RDS >> Mysql

MySqlは、日次、週次、月次、および年次でレコードまたはデータを取得します

    この例では、製品のパフォーマンスに関するユーザーまたは製品の分析レポートを表示するためのMySqlに役立つクエリをいくつか紹介します。

    製品ベースのWebサイトがあり、製品のクリック数とユニーククリック数を計算する必要がある場合、または月次または年次クリック数またはユニーククリック数のグラフビューを表示する必要があるとします。そのため、これらのクエリは非常に便利です。




    ここに、いくつかの分析データを含む製品分析テーブルがあります。

    product_analytic

    Product_Id クリック IP 作成済み 更新
    1 1 192.168.1.1 2016-01-01 00:00:00 2016-01-01 00:00:00
    1 1 192.168.1.1 2016-01-01 00:00:00 2016-01-01 00:00:00
    2 1 192.168.2.1 2016-01-02 00:00:00 2016-01-02 00:00:00
    .. .. 1 ..
    .. .. 1 ..
    .. .. 1 ..

    この表から、商品の日、週、月、年ごとのクリック数とユニーククリック数を取得する必要があります。

    毎日のデータの取得

        SELECT
            DATE(created) AS date,
            COUNT(click) AS click,
            COUNT(DISTINCT(ip)) AS unique_click
        FROM  product_analytic 
        WHERE created BETWEEN '2016-01-01 00:00:00' AND '2016-01-31 23:59:59'
        GROUP BY date
        ORDER BY date

    出力:

    毎週のデータの取得

        SELECT
            DATE_FORMAT(created, '%X-%V') AS date,
            COUNT(click) AS click,
            COUNT(DISTINCT(ip)) AS unique_click
        FROM  product_analytic 
        WHERE created BETWEEN '2016-01-01 00:00:00' AND '2016-01-31 23:59:59'
        GROUP BY date
        ORDER BY date



    月ごとのデータの取得

        SELECT
            DATE_FORMAT(created, '%Y-%m') AS date,
            COUNT(click) AS click,
            COUNT(DISTINCT(ip)) AS unique_click
        FROM  product_analytic 
        WHERE created BETWEEN '2016-01-01 00:00:00' AND '2016-01-31 23:59:59'
        GROUP BY date
        ORDER BY date

    毎年のデータの取得

        SELECT
            DATE_FORMAT(created, '%Y') AS date,
            COUNT(click) AS click,
            COUNT(DISTINCT(ip)) AS unique_click
        FROM  product_analytic 
        WHERE created BETWEEN '2016-01-01 00:00:00' AND '2016-01-31 23:59:59'
        GROUP BY date
        ORDER BY date

    この投稿が気に入ったら、私の公開ノートブックを購読して、もっと便利なものを入手することを忘れないでください


    1. PostgreSQLで配列を比較する方法

    2. SQLServerでのデータベーススキーマの使用

    3. 複数のテーブルを結合するとNULL値が返されます

    4. クライアントとサーバー間の接続の構成Oracle10g