数据选取¶
托管表¶
数据分片存储在本地文件系统或者分布式文件系统里(以Parquet文件格式存储),且表的元数据信息也一并被持久化而不会丢失。
Table 语法¶
table tableName
-- 选取产品表
table product;
-- CTE,给产品表创建一个临时视图,名称为 a
with a as table product;
select * from a;
全局临时视图¶
临时视图是会话范围的,如果创建它的会话终止,将会消失。如果希望在所有会话之间共享一个临时视图并保持活动状态,直到服务终止,则可以创建一个全局临时视图。
View 语法¶
view viewName
-- 选取订单全局视图
view orders;
列举¶
选取、排除及删除列;相较于 column
语法一次只能构造一列,它支持批量新建与拆分列。
List 语法¶
list [param] {col1, col2, col3, ..} [of viewName]
-- 选取订单视图
view orders;
-- 在选取的订单视图上,选取列及构造新的列
list { customer, left(mobile, 3) as mobile, month(join_time) as m};
-- 也可以使用CTE别名当前选取的结果,以备与其它别名的结果交并产生新的结果集
with o as list { customer,
left(mobile, 3) as mobile, month(join_time) as m};
支持的参数 [param]
有:
名称 |
作用 |
---|---|
i |
选取包含的列,该模式下支持新建与拆分构造列,默认 |
- |
选取删除的列后的所有列,该模式下不支持新建与拆分构造列 |
e |
选取排除的列后的所有列,该模式下不支持新建与拆分构造列 |
[of viewName]
表示需要在哪一个视图上进行选取操作。
尾N条记录¶
Tail 语法¶
tail Num [of viewName]
-- 主视图前10条
with a as top 10;
-- 某视图后10条
with b as tail 10 of someView;
-- 把它们按列名相同拼接起来
align a,b;
[of viewName]
表示选取哪一个视图的记录
选择¶
支持符合ANSI SQL标准的 SELECT
语句。查询用于从一个或多个表中检索结果集。详细语法请参考:Select Statement。
SELECT name, dept, DENSE_RANK()
OVER (PARTITION BY dept ORDER BY salary ROWS BETWEEN
UNBOUNDED PRECEDING AND CURRENT ROW) AS dense_rank
FROM employees;
嗯,当然也支持作为 CTE 的子句
with a as
SELECT city, sum(quantity) AS sum FROM dealer
GROUP BY city HAVING city = 'Fremont';