常用的Prestosql

简介: 常用的Prestosql

一、Presto sql 的函数,和 sql(hive sql)基本一样,注意一下一些小细节即可

1.中文列名要用双引号,而不是反引号

2.cast转换时,字符串要 CAST(x AS varchar),而不是string

3.Presto按照标准的方法进行整数除法运算。例如, 7 除以 2 的结果是 3 而不是 3.5 。 对两个整数进行浮点除法运算,需要将其中的一个转为double类型:SELECT CAST(5 AS DOUBLE) / 2

4.日期函数有点不一样,因为Hive可自动识别yyyy-MM-dd的日期格式,而Presto不行,如果想要进行日期计算,需要先parse成Date格式再进行计算,

如日期格式化:format_datetime(parse_datetime(d.record_date,'yyyy-MM-dd HH:mm:ss'),'yyyy-MM-dd')

二、通配模糊查询、正则模糊查询

1、(hive sql)通配、正则模糊查询在语法使用上区别:

like: 不是正则,是通配符。这个通配符可以看一下SQL的标准,例如%代表任意多个字符。

rlike: 是正则,正则的写法与java一样。''需要使用'\',例如'\w'需要使用'\w'

■ (hive sql)两者语法在使用上匹配多个字符串条件的区别:

like 是 字段 like a or like b or like c

rlike 是可以调用方法 rlike(字段,'a|b|c')

-- like 用法
where (address like '%北京%' OR address like '%上海%' OR address like '%广州%' OR address like '%深圳%')
-- rlike 用法
where (address rlike '北京|上海|广州|深圳')

2、正则模糊查询 hive-rlike 和 presto-regexp_like

在hive sql中使用的是rlike,在presto sql 中使用的是regexp_like。

举例1:hive sql中使用的是rlike

where address rlike '北京'
-- 多个匹配条件
where (address rlike '北京|上海|广州|深圳')

举例2:presto sql 中使用的是regexp_like

where regexp_like(title,'Unity') 
-- 多个匹配条件
regexp_like(title,'Unity|UE4|UE5') 
--- 忽略大小写
regexp_like(title,'(?i)Unity')

三、举例

SELECT title "标题", url "url",date "创建时间"
FROM
(
  SELECT title, url,date,create_time,
           ROW_NUMBER() OVER(PARTITION BY title ORDER BY create_time DESC) AS rn
     FROM ods_crawler_table
     WHERE 
      dt>=:startDate 
     AND
     (cast(substr(date,1,10) as date)) >= CAST(:startDate AS date)
) a
WHERE a.rn=1  
ORDER BY date_parse(date,'%Y-%m-%d %H:%i:%S') DESC



如果本文对你有帮助的话记得给一乐点个赞哦,感谢!

目录
相关文章
|
2月前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
39185 72
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
SQL 存储 分布式计算
【Hive】(二十三)简单几招教你如何解决 Hive 中小文件过多的问题
【Hive】(二十三)简单几招教你如何解决 Hive 中小文件过多的问题
2173 0
|
API 网络安全
SSLException Unrecognized SSL…问题排查
SSLException Unrecognized SSL…问题排查
2627 0
|
2月前
|
人工智能 自然语言处理 API
通义千问 Qwen 3.0 前景分析:开源为王,国产 AI 的全球化突围战
2025年4月底,阿里发布Qwen 3.0,8款模型全量开源。其dual-mode reasoning(快/慢思考)提升响应效率与推理深度;MoE架构显著降本增效,小模型性能惊艳;256K长上下文、119语种支持及强大中文理解构筑差异化优势;Apache 2.0开源生态已成全球最大。虽面临幻觉率、全球竞争与商业化挑战,但技术迭代迅猛,前景稳健可期。(239字)
|
7月前
|
机器学习/深度学习 数据挖掘 Python
Mac 安装 Anaconda3-2020.02.dmg 教程(从下载到 conda 可用)
Anaconda是流行的Python数据科学平台,支持数据分析、机器学习等。本文介绍其在Mac上的安装步骤:下载.dmg文件,拖拽安装至应用程序,配置终端环境变量,并通过conda命令或Anaconda Navigator验证安装是否成功。
|
定位技术 Python
遭遇Debian无法执行脚本提示"文件或目录不存在"问题解决方案
这样的错误提示在使用Debian的过程中是很常见的,希望这个极具形象意义的解释和解决方法能帮到你,并使你在处理这样的问题的时候充满乐趣。如果你遇到其他的问题或者对这个问题有更深一步的疑问,欢迎随时提问,我会在第一时间为你解答。
513 24
|
12月前
|
人工智能 自然语言处理 安全
Claude 4 隆重登场!claude 4国内怎么使用才正确?一分钟学会!
Anthropic 日前正式推出其新一代旗舰模型
1202 4
|
SQL HIVE
Hive中日期处理函数的使用(date_format、date_add、date_sub、next_day)
Hive中日期处理函数的使用(date_format、date_add、date_sub、next_day)
4881 3
|
SQL 存储 Java
Hive 特殊的数据类型 Array、Map、Struct
在Hive中,`Array`、`Map`和`Struct`是三种特殊的数据类型。`Array`用于存储相同类型的列表,如`select array(1, "1", 2, 3, 4, 5)`会产生一个整数数组。`Map`是键值对集合,键值类型需一致,如`select map(1, 2, 3, "4")`会产生一个整数到整数的映射。`Struct`表示结构体,有固定数量和类型的字段,如`select struct(1, 2, 3, 4)`创建一个无名结构体。这些类型支持嵌套使用,允许更复杂的结构数据存储。例如,可以创建一个包含用户结构体的数组来存储多用户信息
3833 0