Мне нужно написать запрос, чтобы вычислить среднее количество дней между покупками для каждого покупателя (без использования подзапросов).
create table data {
customer varchar(20) not null,
bought date not null,
primary key (customer,bought)
}
Например,
insert into data (customer,bought)
values (‘John Smith’, date ‘2011-02-01’),
(‘Alice Cooper’, date ‘2011-02-01’),
(‘Bob Baker’, date ‘2011-02-01’),
(‘John Smith’, date ‘2011-02-02’),
(‘Bob Baker’, date ‘2011-02-02’),
(‘Bob Baker’, date ‘2011-02-03’),
(‘Bob Baker’, date ‘2011-02-04’),
(‘Bob Baker’, date ‘2011-02-05’),
(‘Bob Baker’, date ‘2011-02-06’),
(‘Bob Baker’, date ‘2011-02-07’),
(‘John Smith’, date ‘2011-02-07’),
(‘Alice Cooper’, date ‘2011-02-08’);
должен вернуть, что Джон Смит ждал 1 день затем 5 дней, то есть в среднем 3 дня. Элис Купер (!) Ждала 7 дней, поэтому ее в среднем 7. Боб Бейкер - ежедневный бегун, поэтому его средний показатель равен 1.
Я делал что-то вроде этого
select distinct customer, avg (bought) as average from data;
, но это не работает.
Любая помощь будет принята с благодарностью.