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 |