SQL解决过去M天内连续N天符合某条件问题

本文探讨如何使用SQL查询在过去M天内,找出交易笔数连续N天小于B笔的商户。内容涉及数据稠化问题及连续天数的处理,提供了SQL解决方案。
摘要由CSDN通过智能技术生成

本博客是来源CSDN BBS上一个问题。原问题如下:

从系统时间往前M天内,有连续M天交易笔数小于B笔的商户。

表设计:

CREATE TABLE prm_tbl(zoneno NUMBER, last_days NUMBER, min_days NUMBER, min_trans NUMBER);
CREATE TABLE acc_tbl(d_date DATE, merch NUMBER, cnt NUMBER);
CREATE TABLE merch_list(merch NUMBER, zoneno NUMBER);

prm_tbl定义某问题描述中的三个参数。

acc_tbl是交易记录表,假如商户在某天没有交易,则该表没有数据。

merch_list是商户和区域的关联表。某区域内有一个或多个商户。

测试数据如下:

$sh@ORCL> select * from prm_tbl;

ZONENO LAST_DAYS MIN_DAYS MIN_TRANS
------ --------- -------- ---------
     1         5        2         6
     2         5        3         6

Elapsed: 00:00:00.05
$sh@ORCL> select * from acc_tbl order by d_date desc;

D_DATE         MERCH        CNT
--------- ---------- ----------
03-JAN-14          1          7
02-JAN-14          1          6
01-JAN-14          1          7
31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值