我必须编写一个查询来计算每个客户购物之间的平均天数(不使用子查询).
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’,(‘Bob Baker’,(‘John Smith’,date ‘2011-02-02’),date ‘2011-02-03’),date ‘2011-02-04’),date ‘2011-02-05’),date ‘2011-02-06’),date ‘2011-02-07’),date ‘2011-02-08’);
应该回答约翰史密斯等了1天然后5天,所以他的平均值是3天. Alice Cooper(!)等了7天所以她
平均是7.鲍勃贝克是每日跑步者,所以他的平均值是1.
我做过类似的事
select distinct customer,avg (bought) as average from data;
但它不起作用.
任何帮助将不胜感激.
解决方法
PostgreSQL版本的链接答案
select customer,(max(bought) - min(bought)) / (count(bought)-1) from data group by customer;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。