Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySql obtém registros ou dados diariamente, semanalmente, mensalmente e anualmente


Neste exemplo, mostrarei algumas consultas úteis do MySql para exibir qualquer relatório analítico de usuário ou produto sobre o desempenho de seus produtos.

Suponha que você tenha um site de base de produtos e precise calcular o número de cliques e cliques únicos no produto, ou tenha que exibir uma visualização em gráfico de cliques mensais ou anuais ou cliques únicos, para isso essas consultas são muito úteis.




Aqui eu tenho uma tabela analítica de produto com alguns dados analíticos.

product_analytic

Product_Id Clique IP Criado Atualizado
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..

A partir desta tabela, tenho que buscar cliques e cliques únicos no dia do produto, semana, mês, ano.

Buscando dados diariamente

    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

SAÍDA:



Buscando dados semanalmente

    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






Buscando dados mensalmente

    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

Buscando dados anualmente

    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

Se você gostou deste post, não se esqueça de assinar meu caderno público para mais coisas úteis