weixin_37767440 2018-03-04 06:33 采纳率: 0%
浏览 634
已结题

数据库oracle

有一张表,有店名,数据日期,日销售额,商店编号
查询连续**连续**三天或者三天以上销售额超过50000的店名
比如A店1号的销售额5万2号3万3号6万4号7万,这是不符合记录的

  • 写回答

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 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题