Dans cet exemple, je vais vous montrer quelques requêtes MySql utiles pour afficher des rapports analytiques d'utilisateurs ou de produits sur les performances de vos produits.
Supposons que vous ayez un site Web de base de produits et que vous deviez calculer le nombre de clics et de clics uniques sur le produit, ou que vous deviez afficher une vue graphique des clics mensuels ou annuels ou des clics uniques. À cette fin, ces requêtes sont très utiles.
J'ai ici un tableau analytique des produits avec des données analytiques.
product_analytic
Product_Id | Cliquez | IP | Créé | Mise à jour |
---|---|---|---|---|
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.. | … | … |
À partir de ce tableau, je dois récupérer les clics et les clics uniques sur le produit jour, semaine, mois, année.
Récupération des données par jour
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 |
SORTIE :
Récupération des données par semaine
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 |
Récupération des données par mois
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 |
Récupération des données par année
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 |