Skip to content

Instantly share code, notes, and snippets.

@FabianoFaria
Last active March 22, 2017 11:53
Show Gist options
  • Save FabianoFaria/ebc23b9625d7d41980569c9ae5fb2339 to your computer and use it in GitHub Desktop.
Save FabianoFaria/ebc23b9625d7d41980569c9ae5fb2339 to your computer and use it in GitHub Desktop.
SELECT selecionar dados de forma em hora em hora
SELECT
DATE(dados.dt_criacao) date,
MINUTE(dados.dt_criacao) minut,
DAY(dados.dt_criacao) day,
HOUR(dados.dt_criacao) hour,
MIN(dados.dt_criacao) min_date,
UNIX_TIMESTAMP(dados.dt_criacao) AS 'dt_criacao',
IF(dados.h > 0, dados.h + 600, h) as h,
dados.e,
dados.f,
dados.g,
dados.m,
dados.n,
dados.o,
equip.potencia
FROM tb_dados dados
JOIN tb_sim_equipamento sim_equip ON sim_equip.id_sim = dados.num_sim
JOIN tb_equipamento equip ON equip.id = sim_equip.id_equipamento
WHERE dados.dt_criacao BETWEEN '2017-03-20 00:00:00' AND '2017-03-20 23:59:59' AND dados.num_sim = '861445039795195'
GROUP BY DATE(dados.dt_criacao),HOUR(dados.dt_criacao), MINUTE(dados.dt_criacao)
<!-- ATUALIZANDO A QUERY PARA VERSÃO 5.7 -->
-- Seleciona a cada dia
SELECT a.*
FROM tb_dados a
INNER JOIN (
SELECT DATE(dt_criacao) date, DAY(dt_criacao) day, MIN(dt_criacao) min_date
FROM tb_dados GROUP BY DATE(dt_criacao),DAY(dt_criacao) ) b
ON DATE(a.dt_criacao) = b.date AND DAY(a.dt_criacao) = b.day AND a.dt_criacao = b.min_date
WHERE a.dt_criacao BETWEEN '2017-03-01 00:00:00' AND '2017-03-06 23:59:59' AND a.num_sim = '9999988777'
-- Seleciona a cada hora
SELECT a.*
FROM tb_dados a
INNER JOIN (
SELECT DATE(dt_criacao) date, DAY(dt_criacao) day, HOUR(dt_criacao) hour, MIN(dt_criacao) min_date
FROM tb_dados GROUP BY DATE(dt_criacao),DAY(dt_criacao),HOUR(dt_criacao) ) b
ON DATE(a.dt_criacao) = b.date AND DAY(a.dt_criacao) = b.day AND a.dt_criacao = b.min_date
WHERE a.dt_criacao BETWEEN '2017-03-05 00:00:00' AND '2017-03-06 23:59:59' AND a.num_sim = '9999988777'
-- Seleciona a cada minuto
SELECT a.*
FROM tb_dados a
INNER JOIN (
SELECT DATE(dt_criacao) date, DAY(dt_criacao) day, HOUR(dt_criacao) hour, MINUTE(dt_criacao), MIN(dt_criacao) min_date
FROM tb_dados GROUP BY DATE(dt_criacao),DAY(dt_criacao),HOUR(dt_criacao), MINUTE(dt_criacao) ) b
ON DATE(a.dt_criacao) = b.date AND DAY(a.dt_criacao) = b.day AND a.dt_criacao = b.min_date
WHERE a.dt_criacao BETWEEN '2017-03-05 00:00:00' AND '2017-03-06 23:59:59' AND a.num_sim = '9999988777'
<!-- formato otimizado das querys anteriores -->
SELECT UNIX_TIMESTAMP(dt_criacao) AS 'dt_criacao', f,g, DATE(dt_criacao) date, MINUTE(dt_criacao) minut, DAY(dt_criacao) day, HOUR(dt_criacao) hour, MIN(dt_criacao) min_date
FROM tb_dados
WHERE dt_criacao BETWEEN '2017-03-02 00:00:00' AND '2017-03-03 23:59:59' AND num_sim = '13949007326906'
GROUP BY DATE(dt_criacao),HOUR(dt_criacao), MINUTE(dt_criacao)
/*
* SELECIONA DE MINUTO A MINUTO
*/
SELECT a.*
FROM tb_dados a
INNER JOIN
(
SELECT DATE(dt_criacao) date,
MINUTE(dt_criacao) minut,
DAY(dt_criacao) day,
HOUR(dt_criacao) hour,
MIN(dt_criacao) min_date
FROM tb_dados
GROUP BY DATE(dt_criacao),HOUR(dt_criacao), MINUTE(dt_criacao)
) b ON DATE(a.dt_criacao) = b.date AND
MINUTE(a.dt_criacao) = b.minut AND
a.dt_criacao = b.min_date
WHERE a.num_sim = '13949007326906' AND a.dt_criacao BETWEEN '2017-03-01 00:00:00' AND '2017-03-02 23:59:59'
/*
* SELECIONA DE HORA EM HORA
*/
SELECT a.*
FROM tb_dados a
INNER JOIN
(
SELECT DATE(dt_criacao) date,
HOUR(dt_criacao) hour,
MIN(dt_criacao) min_date
FROM tb_dados
GROUP BY DATE(dt_criacao), HOUR(dt_criacao)
) b ON DATE(a.dt_criacao) = b.date AND
HOUR(a.dt_criacao) = b.hour AND
a.dt_criacao = b.min_date
WHERE a.num_sim = 1 AND a.dt_criacao BETWEEN '2017-02-05' AND '2017-02-09'
/*
* SELECIONA DADOS AGRUPADOS DE DIA A DIA
*/
SELECT a.*
FROM tb_dados a
INNER JOIN
(
SELECT DATE(dt_criacao) date,
DAY(dt_criacao) day,
HOUR(dt_criacao) hour,
MIN(dt_criacao) min_date
FROM tb_dados
GROUP BY DATE(dt_criacao), HOUR(dt_criacao)
) b ON DATE(a.dt_criacao) = b.date AND
DAY(a.dt_criacao) = b.hour AND
a.dt_criacao = b.min_date
WHERE a.num_sim = 1 AND a.dt_criacao BETWEEN '2017-02-05' AND '2017-02-09'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment