Apache Flink 漫谈系列 - SQL概览
大家看到在 SELECT 不仅可以使用普通的字段选择,还可以使用ScalarFunction,当然也包括User-Defined Function,同时还可以进行字段的alias设置。其实SELECT可以结合聚合,在GROUPBY部分会进行介绍,一个比较特殊的使用场景是携带 DISTINCT 关键字,示例如下: (1) SQL 示例 在订单表查询所有的客户id,消除重复客户id, 如下:
(2) Result 六、WHERE WHERE 用于从数据集/流中过滤数据,与SELECT一起使用,语法遵循ANSI-SQL标准,语义是关系代数的Selection,根据某些条件对关系做水平分割,即选择符合条件的记录,如下所示: 1. SQL 示例 在customer_tab查询客户id为c_001和c_003的客户信息,如下:
2. Result 3. 特别说明 我们发现WHERE是对满足一定条件的数据进行过滤,WHERE支持=, <, >, <>, >=, <=以及AND, OR等表达式的组合,最终满足过滤条件的数据会被选择出来。并且 WHERE 可以结合IN,NOT IN联合使用,具体如下: (1) SQL 示例 (IN 常量) 使用 IN 在customer_tab查询客户id为c_001和c_003的客户信息,如下:
(2) Result (3) SQL 示例 (IN 子查询) 使用 IN和 子查询 在customer_tab查询已经下过订单的客户信息,如下:
(4) Result (5) IN/NOT IN 与关系代数 如上介绍IN是关系代数中的Intersection, NOT IN是关系代数的Difference, 如下图示意:
七、GROUP BY GROUP BY 是对数据进行分组的操作,比如我需要分别计算一下一个学生表里面女生和男生的人数分别是多少,如下: 1. SQL 示例 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |