mysql 哪个版本支持cube函数

mysql 哪个版本支持cube函数,第1张

cube的全称是多维立方体,就是在不同位置存放数据的立方体,主要是用于支持联机分析应用(OLAP)。Cube的使用就是在处理数据时,把所需要的数据进行打包,尤其针对要处理的数据很大的时候,比如FineBI的FineCube,可以避免建模,数据处理起来会很快。

sqlserver

一:查询的逻辑执行顺序

(1) FROM <left_table>

(3) <join_type>JOIN <right_table>(2) ON <join_condition>

(4) WHERE <where_condition>

(5) GROUP BY <group_by_list>

(6) WITH {cube | rollup}

(7) HAVING <having_condition>

(8) SELECT (9) DISTINCT (11) <top_specification><select_list>

(10) ORDER BY <order_by_list>

标准的SQL 的解析顺序为:

(1).FROM 子句 组装来自不同数据源的数据

(2).WHERE 子句 基于指定的条件对记录进行筛选

(3).GROUP BY 子句 将数据划分为多个分组

(4).使用聚合函数进行计算

(5).使用HAVING子句筛选分组

(6).计算所有的表达式

(7).使用ORDER BY对结果集进行排序

二 执行顺序:

1.FROM:对FROM子句中前两个表执行笛卡尔积生成虚拟表vt1

2.ON:对vt1表应用ON筛选器只有满足<join_condition>为真的行才被插入vt2

3.OUTER(join):如果指定了 OUTER JOIN保留表(preserved table)中未找到的行将行作为外部行添加到vt2 生成t3如果from包含两个以上表则对上一个联结生成的结果表和下一个表重复执行步骤和步骤直接结束

4.WHERE:对vt3应用 WHERE 筛选器只有使<where_condition>为true的行才被插入vt4

5.GROUP BY:按GROUP BY子句中的列列表对vt4中的行分组生成vt5

6.CUBE|ROLLUP:把超组(supergroups)插入vt6 生成vt6

7.HAVING:对vt6应用HAVING筛选器只有使<having_condition>为true的组才插入vt7

8.SELECT:处理select列表产生vt8

9.DISTINCT:将重复的行从vt8中去除产生vt9

10.ORDER BY:将vt9的行按order by子句中的列列表排序生成一个游标vc10

11.TOP:从vc10的开始处选择指定数量或比例的行生成vt11 并返回调用者

重点就是在形成视图之前会生成虚拟表,oracle好像不支持,既然你这么爱探究,可以搜索“SQL语句中having为什么可以 *** 作as声明的别名”


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/8502623.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存