请教个SQL语句(这个能用SQL实现吗)
有一张交易流水表,字段(流水号 卡号交易日期交易时间戳 金额)流水号是主键,一个卡可以有多个交易流水记录,每个流水的时间戳及金额都可能相同
现在要统计交易日期>2009-11-02,每张卡的交易金额累计达到2万金额(>=20000)时,输出要求如下:
1.卡号
2,达到2万金额对应流水的“流水号”
3,达到2万金额对应流水的“交易时间戳”
4、到达2万时刻累计的金额 需要用over子句
SELECT 卡号,流水号,交易时间戳,累计金额
FROM (
SELECT 卡号,流水号,交易时间戳,
SUM(金额)OVER(partition by 卡号 order by 交易时间戳) 累计金额,
SUM(金额)OVER(partition by 卡号 order by 交易时间戳 range between unbounded preceding and 1 preceding) 前一次累计金额
FROM 流水表
WHERE 交易日期>'2009-11-02' ) T
WHERE 累计金额>=20000
AND ( 前一次累计金额<20000 or 前一次累计金额 IS NULL )
没有调试,运行后可做相关调整。
回复 #2 Germin 的帖子
领教了,谢谢,明天好好测试一下
页:
[1]