sql >> Database >  >> RDS >> Mysql

MySql krijgt records of gegevens per dag, week, maand en jaar

In dit voorbeeld ga ik u enkele nuttige MySql-query's laten zien om gebruikers- of productanalyserapporten over de prestaties van uw product weer te geven.

Stel dat u een website heeft met een productbasis en u moet het aantal klikken en unieke klikken op een product berekenen, of u moet een grafiekweergave weergeven van maandelijkse of jaarlijkse klikken of unieke klikken. Voor dat doel zijn deze zoekopdrachten erg handig.




Hier heb ik een productanalysetabel met wat analytische gegevens.

product_analytic

Product_Id Klik IP Gemaakt Bijgewerkt
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 02-01-2016 00:00:00 02-01-2016 00:00:00
.. .. 1..
.. .. 1..
.. .. 1..

Uit deze tabel moet ik klikken en unieke klikken op productdag, week, maand en jaar halen.

Dagelijks gegevens ophalen

    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

UITGANG:

Wekelijks gegevens ophalen

    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



Gegevens ophalen per maand

    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

Gegevens ophalen per jaar

    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

Als je dit bericht leuk vindt, vergeet dan niet je te abonneren op mijn openbare notitieboek voor meer nuttige dingen


  1. Wat is het equivalent van bigint in C#?

  2. Sneller alternatief in Oracle voor SELECT COUNT(*) FROM sometable

  3. Gegevens invoegen in SQL Server 2017

  4. Online versus offline back-up