Flink系列之:SELECT & WHERE clause

Flink系列之:SELECT & WHERE clause

  • 适用于流、批

一、SELECT & WHERE clause

  • SELECT 语句的一般语法是:
SELECT select_list FROM table_expression [ WHERE boolean_expression ]

table_expression 引用任何数据源。它可以是现有表、视图或 VALUES 子句、多个现有表的联接结果或子查询。假设该表在目录中可用,以下代码将从 Orders 中读取所有行。

SELECT * FROM Orders

select_list 规范 * 表示查询将解析所有列。但是,在生产中不鼓励使用 *,因为它会使查询对目录更改的鲁棒性降低。相反,select_list 可以指定可用列的子集或使用所述列进行计算。例如,如果 Orders 具有名为 order_id、price 和 Tax 的列,您可以编写以下查询:

SELECT order_id, price + tax FROM Orders

查询还可以使用 VALUES 子句使用内联数据。每个元组对应于一行,并且可以提供别名来为每一列分配名称。

SELECT order_id, price FROM (VALUES (1, 2.0), (2, 3.1))  AS t (order_id, price)

可以基于 WHERE 子句过滤行。

SELECT price + tax FROM Orders WHERE id = 10

此外,可以在单行的列上调用内置和用户定义的标量函数。用户定义的函数在使用前必须注册到目录中。

SELECT PRETTY_PRINT(order_id) FROM Orders

二、SELECT DISTINCT

如果指定 SELECT DISTINCT,则将从结果集中删除所有重复行(每组重复项中保留一行)。

SELECT DISTINCT id FROM Orders

对于流查询,计算查询结果所需的状态可能会无限增长。状态大小取决于不同行的数量。您可以为查询配置提供适当的状态生存时间 (TTL),以防止状态大小过大。请注意,这可能会影响查询结果的正确性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快乐骑行^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值