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

SQL Calcule a diferença de tempo média entre o total de linhas


Se você quiser saber com que frequência (em média) uma linha foi inserida, não acho que você precise calcular todas as diferenças. Você só precisa somar as diferenças entre as linhas adjacentes (adjacentes com base no timestamp) e dividir o resultado pelo número de somatórios.

A fórmula
((T1-T0) + (T2-T1) + … + (TN-TN-1)) / N

obviamente pode ser simplificado para apenas
(TN-T0) / N

Então, a consulta seria algo assim:
SELECT TIMESTAMPDIFF(SECOND, MIN(date), MAX(date)) / (COUNT(*) - 1)
FROM atable

Certifique-se de que o número de linhas seja maior que 1 ou você receberá o erro Division By Zero. Ainda assim, se quiser, você pode evitar o erro com um truque simples:
SELECT
  IFNULL(TIMESTAMPDIFF(SECOND, MIN(date), MAX(date)) / NULLIF(COUNT(*) - 1, 0), 0)
FROM atable

Agora você pode executar a consulta com segurança em uma tabela com uma única linha.