sql >> Databasteknik >  >> RDS >> Mysql

MySql få poster eller data dagligen, veckovis, månadsvis och årligen

I det här exemplet ska jag visa dig några användbara MySql-frågor för att visa användar- eller produktanalysrapporter om dina produkters prestanda.

Anta att du har en produktbaswebbplats och du måste beräkna antalet klick och unika klick på produkten, eller så måste du visa en grafvy över månatliga eller årliga klick eller unika klick. För detta ändamål är dessa frågor mycket användbara.




Här har jag en produktanalystabell med lite analysdata.

produktanalytisk

Product_Id Klicka IP Skapat Uppdaterad
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.. ... ...

Från den här tabellen måste jag hämta klick och unika klick på produktdag, vecka, månad, år.

Hämtar data dagligen

    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

OUTPUT:

Hämtar data per vecka

    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



Hämtar data per månad

    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

Hämtar data per år

    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

Om du gillar det här inlägget, glöm inte att prenumerera på min offentliga anteckningsbok för mer användbara saker


  1. Hur kan jag VÄLJA flera kolumner i ett CASE NÄR på SQL Server?

  2. MySQL InnoDB Cluster 8.0 - En komplett implementeringsgenomgång:del ett

  3. Vad är Oracle Joins (Sql Joins)?

  4. Ställa in MySQL root-användarlösenordet på OS X