有一张表,有店名,数据日期,日销售额,商店编号
查询连续**连续**三天或者三天以上销售额超过50000的店名
比如A店1号的销售额5万2号3万3号6万4号7万,这是不符合记录的
数据库oracle
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- hello128 2018-03-04 09:57关注
create table sale_info
(
dt date, ---销售日期
sale_num float, ---销售量
shop_code varchar(200) ---商店编号
)select shop_code, rdt,count(1)
from (select b.shop_code, b.dt, b.sale_num, b.flg, b.flg - d.rn as rdt
from (select b.shop_code,
b.dt,
a.sale_num,
case
when a.sale_num > 50000 then
b.dt
else
null
end flg
from (select shop_code, dt, sum(sale_num) sale_num
from sale_info
group by shop_code, dt) a, ---先按照日期和店分组下
(select trunc(sysdate) - level + 1 as dt,
'001' shop_code
from dual
connect by level <= 23) b --连续日期,如果需要更长,可以自己设置
where b.dt = a.dt(+) --左外连接
and b.shop_code = a.shop_code(+)
order by b.shop_code, b.dt) b,
(select c.*,
row_number() over(partition by c.shop_code order by c.shop_code, c.dt) rn
from (select shop_code, dt, sum(sale_num) sale_num
from sale_info
group by shop_code, dt) c ---先按照日期和店分组下,再按照日期进行排序
where c.sale_num > 50000) d
where b.dt = d.dt(+) --左外连接
and b.shop_code = d.shop_code(+))
group by shop_code, rdt
having count(1)>=3 ---存在大于等于3的就是了解决 无用评论 打赏 举报
悬赏问题
- ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
- ¥20 关于URL获取的参数,无法执行二选一查询
- ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
- ¥15 marlin编译错误,如何解决?
- ¥15 有偿四位数,节约算法和扫描算法
- ¥15 VUE项目怎么运行,系统打不开
- ¥50 pointpillars等目标检测算法怎么融合注意力机制
- ¥20 Vs code Mac系统 PHP Debug调试环境配置
- ¥60 大一项目课,微信小程序
- ¥15 求视频摘要youtube和ovp数据集