Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySql obtient des enregistrements ou des données par jour, semaine, mois et année

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

Si vous aimez cet article, n'oubliez pas de vous abonner à mon bloc-notes public pour des informations plus utiles