/ Média ponderada do MySQL - banco de dados mysql, sql

Média ponderada do MySQL - banco de dados mysql, sql

Eu tenho um banco de dados SQL no PHPMyAdmin e estou tentando escrever consultas para ele.

Uma das consultas que quero escrever é: Encontre a média de uma coluna contendo todos os dados e exiba essa média. Problema que tenho é que um item foi trazido duas vezes ao mesmo tempo. O nome da tabela é Pedidos. Por exemplo:

aqui está uma foto dos dados

Como eu escreveria essa consulta SQL?

O resultado final Eu quero um datetime que é a média de todos os datetimes acima. Lembrar a figura inferior do datatime tem que ser calculada duas vezes na média.

Obrigado!

Respostas:

2 para resposta № 1

Uau, isso foi difícil. Mas parece que eu trabalhei. Eu tentei várias coisas, mas foi incapaz de usar a função mysql avg depois de tudo:

SELECT FROM_UNIXTIME(SUM(Quantity * UNIX_TIMESTAMP(DateTimeStart)) / SUM(Quantity)) AS `avg-time` FROM orders;

Como cheguei a esta consulta?

  1. Eu suponho que sua mesa é chamada de "ordens".
  2. Para calcular com datas, é preferível converter as datas primeiro em timestamps unix. Eu uso o UNIX_TIMESTAMP função mysql para fazer isso.
  3. Eu multiplico cada datetimestart (como timestamps unix) por sua quantidade.
  4. Eu calculo a soma desses.
  5. Eu divido isto pela soma total de quantidades
  6. Nós poderíamos ser feitos agora. Mas eu acho que você gostaria de ter uma forma legível de novo (eu também, na verdade), então para converter o timestamp unix médio de volta para uma data legível eu uso FROM_UNIXTIME.