Create table emails (email_id int, sent_date DATE NULL, status varchar(20))
Truncate table emails
insert into emails (email_id, sent_date, status) values ('1', '2017-01-01', 'sent')
insert into emails (email_id, sent_date, status) values ('2', '2017-01-02', 'sent')
insert into emails (email_id, sent_date, status) values ('1', '2017-01-02', 'open')
insert into emails (email_id, sent_date, status) values ('2', '2017-01-03', 'open')
insert into emails (email_id, sent_date, status) values ('3', '2017-01-03', 'sent')
insert into emails (email_id, sent_date, status) values ('3', '2017-01-04', 'open')
insert into emails (email_id, sent_date, status) values ('4', '2017-01-04', 'sent')
insert into emails (email_id, sent_date, status) values ('5', '2017-01-05', 'sent')
insert into emails (email_id, sent_date, status) values ('5', '2017-01-05', 'open')
insert into emails (email_id, sent_date, status) values ('5', '2017-01-06', 'replied')
insert into emails (email_id, sent_date, status) values ('6', '2017-01-07', 'sent')
insert into emails (email_id, sent_date, status) values ('7', '2017-01-08', 'sent')
What is the open rate for email sent.
select round(cast((select count(*) as opened
from emails
where status='open') as decimal(8,2))
/
cast((select count(*) as sent
from emails
where status='sent') as decimal(8,2)),2) as Open_rate