第一个需求:
比如小店营业每天8小时,想找出当日盈利最高的一个小时时间段(比如是 8:57~9:57是最高峰);
比如数据如下:
时间
盈利
.....
8:29:3120元
8:29:5730元
8:31:2317元
......
这个需求看似很简单,但是想通过sql语句实现,感觉很难的;
好像这样些:
select * from (
select a.时间,a.盈利 ,
(select sum(b.盈利) from 流水表b where b.时间 between a.时间 and a.时间+1小时) as 1小时内盈利
from 流水表 a) c
order by 1小时内盈利desc
取第一条记录对应的时间就是最高盈利的一小时内的起始时间;
以上的语句,理论上是可以实现,但是我觉得效率太低了;
我非常希望能用上 sum(盈利)over ( order by 时间) ,这样效率高些;但是考虑好久,好像没法用上分析函数;