MySQL. Eu quero ter uma porcentagem de e-mails, que foram clicados o mais tardar 10 minutos após o usuário recebeu um e-mail

Integrante do Painel Nick:

Eu tenho 2 tabelas no MySQL:

emails_sent(
id int primary key,
id_type int,
date_sent datetime)

emails_clicks(
id int primary key,
id_email int,
date_click datetime,
foreign key(id_email) references emails_sent(id))

Eu quero escrever uma consulta, que irá retornar uma porcentagem de e-mails, que foram clicados o mais tardar 10 minutos após o usuário recebeu um e-mail. Agrupadas por cada tipo de e-mail (id_type). Como posso fazer isso?

GMB:

Você pode fazer uma média condicional.

No MySQL, que seria:

select s.id_type, avg(c.date_click < s.date_sent + interval 10 minute) res
from email_sent s
left join email_clicks c on c.id_email = s.id
group by id_type

Para cada linha em cada um email_sent, a consulta se recupera a linha correspondente email_clicks; se o e-mail foi clicado menos de 10 minutos, a condição dentro de avg()retornos 1, else 0. A média dá-lhe a proporção de e-mails que foram clicados menos de 10 minutos depois de ser enviado (como um valor decimal entre 0 e 1).

Acho que você gosta

Origin http://10.200.1.11:23101/article/api/json?id=408623&siteId=1
Recomendado
Clasificación