楼主: 时光永痕
1021 0

[数据挖掘新闻] 脚本后处理复杂的SQL查询 [推广有奖]

  • 0关注
  • 14粉丝

svip3

学术权威

12%

(VIP/贵宾)八级

6%

威望
0
论坛币
26 个
通用积分
57.2238
学术水平
4 点
热心指数
4 点
信用等级
4 点
经验
34180 点
帖子
2732
精华
0
在线时间
321 小时
注册时间
2020-7-21
最后登录
2024-8-1

楼主
时光永痕 学生认证  发表于 2020-10-19 20:12:41 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
脚本后处理复杂的SQL查询
SQL(或存储过程)可以处理大多数数据库计算。如果SQL中的计算复杂或难以处理,我们可以使用另一种编程语言从数据库中读取数据以对其进行操作。这种编程语言通过简单的脚本处理数据读取和操作。因此,我们将该过程称为SQL后脚本。
SQL不擅长处理的方案包括复杂的基于集合的操作,基于订单的操作,关联操作和多步计算等。由于SQL的集合方向不完整且缺少明确的集合数据类型,因此几乎无法重用计算过程中生成的中间集。每次分组操作之后的强制聚合使无法使用分组后的子集。基于无序集的SQL采用非常round回的方式来处理基于行的计算,例如行间(组)计算和排序操作。该语言使用JOIN(s)或子查询生成临时序列号,从而使程序难以编写且计算速度较慢。记录引用是另一个SQL的功能。该语言使用子查询或JOIN语句来表达关系。当存在多个数据级别或需要自我联接时,代码变得异常复杂。SQL不会促进多步编码。程序员必须编写包含子查询层的非常长的查询。尽管存储过程可以缓解此问题,但它们并不总是可用。DBA对使用存储过程的特权有严格的规定,而旧数据库和小型数据库都不支持存储过程。此外,调试存储过程很不方便。这使其不适合进行过程计算。DBA对使用存储过程的特权有严格的规定,而旧的和小型数据库都不支持存储过程。此外,调试存储过程很不方便。这使其不适合进行过程计算。DBA对使用存储过程的特权有严格的规定,而旧数据库和小型数据库都不支持存储过程。此外,调试存储过程很不方便。这使其不适合进行过程计算。
还有其他需要SQL后脚本编写的方案。为了在不同数据库产品之间或数据库与非关系数据库之间迁移算法,数据源或输出目标不是数据库而是文件,例如,在多个数据库之间执行混合计算。所有这些外部数据库计算都需要SQL后脚本。
后SQL脚本的最重要作用是实现SQL不擅长的复杂计算。如果它们具有一些高级功能(如处理各种源(例如文件和非关系数据库)的数据并处理相对大量的数据以及令人满意的性能)的能力会更好。但是,最基本的是脚本工具应该能够方便地执行数据库读/写。
流行的SQL后脚本工具是Java,Python pandas和esProc。现在,让我们看看并检查他们的脚本编写能力。
爪哇
诸如C ++和Java之类的高级语言在理论上是全能的,因此能够管理SQL难以处理的计算。Java支持通用类型,并且具有相对全面的集合方向以处理基于集合的复杂计算。Java数组具有内部序列号,可以方便地实现基于订单的计算。Java可以使用对象引用表达关系并很好地处理联接操作。它还支持过程语法,包括分支和循环,以实现复杂的多步计算。
不幸的是,Java缺少用于结构化计算的类库。它甚至可以对最简单的结构化计算进行硬编码,并手动创建最基本的数据类型。这使得Java代码冗长而复杂。
这是一个基于订单的计算示例:获取股票连续上升的最长交易日数。数据库APL将股票的价格信息存储在包括交易日期和收盘价的字段中。
以一种直观的方式,我们循环浏览按日期排序的记录,如果当前记录的收盘价大于上一个记录的收盘价,则在连续上升的天数(初始值为0)中加1;并将连续上升的天数与当前最大的连续上升天数(初始值为0)进行比较,以获取新的最大数字并将该数字重置为0。重复该过程,直到循环结束并且当前最大数是最终想要的。
SQL无法实现直观算法,因为它不支持基于订单的计算。但是它有自己的技巧。它将按日期排序的库存记录分组。方式是这样的:将收盘价连续上升的记录放在一组中,即,如果收盘价上升,则将当前记录与前一个记录分组,如果收盘价下降,则创建一个新组;然后计算每个组中的成员并找到最大的数目,这是连续上升的天数最大的数目。

关注 CDA人工智能学院 ,回复“录播”获取更多人工智能精选直播视频!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:sql 后处理 pandas python 关系数据库

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-9 04:16