常用的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



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

目录
相关文章
|
8月前
|
Shell 程序员 开发工具
码云代码托管平台
码云代码托管平台
|
8月前
|
数据采集 JSON 数据格式
python爬虫之app爬取-charles的使用
charles 基本原理,charles抓包,分析,重发。
273 0
|
4月前
|
前端开发 JavaScript Java
SpringBoot项目部署打包好的React、Vue项目刷新报错404
本文讨论了在SpringBoot项目中部署React或Vue打包好的前端项目时,刷新页面导致404错误的问题,并提供了两种解决方案:一是在SpringBoot启动类中配置错误页面重定向到index.html,二是将前端路由改为hash模式以避免刷新问题。
356 1
|
存储 监控 安全
天天在都在谈的S3协议到底是什么?一文带你了解S3背后的故事
S3的诞生绝不是偶然,是数据的爆炸增长和技术的不断推进的结果,国外用亚马逊、谷歌云等支持S3协议的比较多,国内用阿里云、腾讯云、华为云的比较多。
4757 1
天天在都在谈的S3协议到底是什么?一文带你了解S3背后的故事
|
数据采集 监控 数据可视化
Scrapy可视化管理管理工具总结
Scrapy可视化管理管理工具总结
1242 0
Scrapy可视化管理管理工具总结
|
6天前
|
存储 人工智能 BI
Paimon 1.0: Unified Lake Format for Data + AI
本文整理自阿里云智能开源湖存储负责人李劲松在Flink Forward Asia 2024上海站主论坛的演讲。Apache Paimon于今年3月成为顶级项目,计划发布1.0版本,目标是Unified Lake Format for Data + AI,解决数据处理与AI应用中的关键问题。Paimon结合Flink打造Streaming Lakehouse解决方案,已在阿里巴巴集团及多个行业中广泛应用。来自淘天、抖音和vivo的嘉宾分享了基于Paimon + Flink技术栈的数据湖实时处理与分析实践案例。内容涵盖大数据从业者面临的痛点、Paimon的发展历程及大厂的应用经验。
261 1
Paimon 1.0: Unified Lake Format for Data + AI
|
7月前
|
Python
Python中字符串和数字相加
【6月更文挑战第3天】
969 3
|
5月前
|
SQL 数据可视化 关系型数据库
SQLite3使用笔记(1)——查询
SQLite3使用笔记(1)——查询
376 0
|
6月前
|
机器学习/深度学习 自然语言处理 计算机视觉
Transformer深度学习架构与GPT自然语言处理模型
Transformer和GPT(Generative Pre-trained Transformer)是深度学习和自然语言处理(NLP)领域的两个重要概念,它们之间存在密切的关系但也有明显的不同。
133 2
|
8月前
|
机器学习/深度学习 编解码 监控
Darknet,看过很多篇,这个最清晰了
Darknet,看过很多篇,这个最清晰了