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 |