sql查询上月与本月的数据差_【数据蒋堂】第 22 期:有序遍历语法

【数据蒋堂】第 22 期:有序遍历语法

dd9ec3982f8d206f23a385f69e24ee04.png

前一期 【数据蒋堂】第 21 期:常规遍历语法

我们继续讨论遍历运算的语法规则。

5. 序号的引用

SQL 延用了数学上的无序集合概念,遍历时也不关注次序。但计算机只能一步步地执行(暂先不考虑并行计算的情况),遍历集合时总会有个次序,充分利用这个次序就可以方便地表达更丰富的计算需求。

比如我们想从一个集合取出半数成员构成新集合。这看起来象是过滤运算,但过滤条件和集合成员本身并没有关系,而是由遍历成员时的次序号决定的。

只有 ~ 写法无法方便地描述出这种运算,这时候还需有个符号(标识符)来表示遍历的次序号。

事实上,大部分高级语言在写循环语句时都会有个循环变量来表示次序号,就起到了这个作用。但许多集合化语言中并没有提供这个机制,碰到这种运算就只能再写循环才能完成,就显得很繁琐。SQL 也没有表示遍历次序后的方案,只能先用子查询人为制造一个序号出来再针对这个序号进行过滤。

我们用 #来表示遍历的次序号,那么这个运算就很容易写了:

A.select(#<=A.len()/2) 取前一半成员A.select(#%2==0) 取偶数位置的成员A.select(#<=A.len()/2) 取前一半成员A.select(#%2==0) 取偶数位置的成员

对应地

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值