presto安装 https://blog.csdn.net/qq_25073261/article/details/107402176
Presto常用语句 https://blog.csdn.net/lnho2015/article/details/51428782/
bin/launcher start 后台运行 bin/launcher run 前台运行
1.查询 从0或多个表获取数据行
[ WITH with_query [, ...] ] SELECT [ ALL | DISTINCT ] select_expr [, ...] [ FROM from_item [, ...] ] [ WHERE condition ] [ GROUP BY expression [, ...] ] [ HAVING condition] [ UNION [ ALL | DISTINCT ] select ] [ ORDER BY expression [ ASC | DESC ] [, ...] ] [ LIMIT count ] from_item 为以下之一 table_name [ [ AS ] alias [ ( column_alias [, ...] ) ] ] from_item join_type from_item [ ON join_condition | USING ( join_column [, ...] ) ]2.GROUP BY子句 GROUP BY 子句对 SELECT 语句的输出进行分组, 分组中是匹配值的数据行。 Group BY 子句支持任意表达式, 包括指定列名或列序号(从1开始)。
3.HAVING子句 HAVING 子句与聚合函数以及 GROUP BY 子句共同使用, 用来控制选择分组。 HAVING 子句去掉不满足条件的分组。 在分组和聚合计算完成后,HAVING 对分组进行过滤。
以下示例查询 customer 表,并进行分组, 查出账户余额大于指定值的记录:
SELECT count(*), mktsegment, nationkey, CAST(sum(acctbal) AS bigint) AS totalbal FROM customer GROUP BY mktsegment, nationkey HAVING sum(acctbal) > 5700000 ORDER BY totalbal DESC;4.UNION子句 UNION 子句用于将多个查询语句的结果合并为一个结果集:
query UNION [ALL | DISTINCT] query
参数 ALL 或 DISTINCT 控制最终结果集包含哪些行。 如果指定参数 ALL ,则包含全部行,即使行完全相同。 如果指定参数 DISTINCT , 则合并结果集,结果集只有唯一不重复的行。 如果不指定参数,执行时默认使用 DISTINCT 。 多个union从左向右执行, 除非用括号明确指定顺序。
5.插入 向表中插入行。
INSERT INTO table_name query 目前尚不支持指定列名。 因此, 查询语句中的列与要插入的表中的列必须完全匹配。例如: INSERT INTO orders SELECT * FROM new_orders; INSERT INTO cities VALUES (1, 'San Francisco'); NSERT INTO cities VALUES (2, 'San Jose'), (3, 'Oakland');6.表操作 功能 语句 描述 修改表 ALTER TABLE name RENAME TO new_name 改变一个现有表的定义 建表 CREATE TABLE table_name AS query 创建一个包含 查询 查询结果的新表 建视图 CREATE [ OR REPLACE ] VIEW view_name AS query 创建一个 查询 查询的新视图。视图是一个逻辑表, 可以在将来的查询中使用。视图不包含任何数据。 每当视图被其他查询语句使用时, 存储在视图中的查询语句都会被执行 查看表结构 DESCRIBE table_name 查看一个已经存在的表结构 删表 DROP TABLE table_name 删除一个已经存在的表 删视图 DROP VIEW view_name 删除一个已经存在的视图
7.显示 功能 语句 描述 显示列 SHOW COLUMNS FROM table 列出 表 中的列及其数据类型和其他属性 显示函数 SHOW FUNCTIONS 列出全部可用于查询的函数 显示分区 SHOW PARTITIONS FROM table [ WHERE … ] [ ORDER BY … ] [ LIMIT … ] 列出 表 中的分区,可以使用 WHERE 子句进行过滤, 使用 ORDER BY 子句排序,使用 LIMIT 子句限制。 这些子句与他们的在 查询 中的工作方式相同 显示库 SHOW SCHEMAS [ FROM catalog ] 列出 catalog 或当前catalog中的库 显示会话 SHOW SESSION 列出当前会话属性 显示表 SHOW TABLES [ FROM schema ] [ LIKE pattern ] 列出指定 库 或当前库中的表。 可以用 LIKE 子句控制列出的表名
8.解释 显示一个语句的逻辑或分布式执行方案。
EXPLAIN [ ( option [, ...] ) ] statement option可以为以下之一: FORMAT { TEXT | GRAPHVIZ } TYPE { LOGICAL | DISTRIBUTED }9.将实际上带有时区的日期的字符串转换为Presto中的时间戳 select parse_datetime(‘2017-12-24 23:59:59.000 PST’,‘YYYY-MM-dd HH:mm:ss.SSS z’);
10 查看表结构 desc center_basic_park; 查看建表语句 show create table center_basic_park;
11.获取当前时间年月日时分秒(yyyy-MM-dd HH:mm:ss) select substr(cast(now() as varchar),1,19) as nowTime;
12.时间戳转标准日期 select ‘1566748800000’ as “毫秒时间戳”, substr(‘1566748800000’,1,10) as “秒时间戳”, format_datetime(from_unixtime(cast(substr(‘1566748800000’,1,10) as int)),‘yyyy-MM-dd’) as “年月日”, format_datetime(from_unixtime(cast(substr(‘1566748800000’,1,10) as int)),‘yyyy-MM-dd HH:mm:ss’) as “年月日时分秒”, from_unixtime(cast(substr(‘1566748800000’,1,10) as int)) as “年月日时分秒毫秒”; – 将13位毫秒级的unix timestamp截取到秒级别
