この例では、製品のパフォーマンスに関するユーザーまたは製品の分析レポートを表示するための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 |