首页 > 数据库 >常用的Prestosql

常用的Prestosql

时间:2023-03-02 18:11:18浏览次数:39  
标签:常用 like Prestosql address hive sql date rlike

一、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




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

标签:常用,like,Prestosql,address,hive,sql,date,rlike
From: https://www.cnblogs.com/shan333/p/17172893.html

相关文章

  • 常用的hive sql
    细节:sql中有涉及到正则匹配函数的,要注意转义符号因为在不同语言下正则匹配规则是否需要加转义符号是不同的,举例,regexp_replace函数,在hivesql的正则匹配规则的\d+需......
  • IDEA的常用快捷键和文档注释
    IDEA的常用快捷键Alt+回车导入包,自动修正Ctrl+N查找类Ctrl+Shift+N查找文件Ctrl+Alt+N格式化代码Ctrl+Alt+O优化导入的类和包(Fn+)......
  • dev gridControl控件 常用使用方法及设置(实时更新)
    devgridControl控件常用使用方法及设置(实时更新)新增方法:+1.GridControl中GridView的指定列自动排序功能gridView1.BeginSort();//事务开始gridView1.ClearSorting();......
  • HTML-CSS常用代码
    注释标签:对代码进行说明<!--单行注释,也可以对多行文字进行注释-->常用格式标签<b>加粗</b> <i>斜体</i> <u>下划线</u> <s>删除线</s> <p>段落标签</p> <hr>:分割线 <br>......
  • 【Dubbo RPC 框架-服务发现&常用特性】
    零、本文纲要一、服务发现二、Dubbo快速入门(Spring+SpringMVC)①dubbo-interface模块②dubbo-service模块③dubbo-web模块三、其他特性①序列化implementsSerial......
  • 【ZooKeeper基础-数据结构、服务端/客户端常用命令】
    一、ZooKeeper简介二、ZooKeeper数据结构&命令**1、数据结构**2、服务端常用命令①单机启动命令:./zkServer.shstart②状态查询命令:./zkServer.shstatus③停止服务......
  • DL 基础:PyTorch 常用代码存档
    1pandas读csvimporttorchfromtorchimportnnimportnumpyasnpimportpandasaspdfromcopyimportdeepcopydevice="cuda"iftorch.cuda.is_available()......
  • linux常用命令
    1.man[命令或配置文件](功能描述:获得帮助信息)获取一个信息文档,查看具体信息,按q退出2.help命令(功能描述:获得shell内置命令的帮助信息)仅仅能获取bash内置命令的信息,不......
  • MySQL数据库常用操作命令
    MySQL数据库常用操作命令登录mysql数据库:mysql-uuser-ppassword。user表示用户名、password表示登录密码。创建数据库:createdatabasecainiao;cainiao表示创建的数......
  • 工作几种常用数据库操作sql语句
    改变字段顺序的方法:移动字段到某字段的后面altertable表名modify字段名字段类型after字段eg:altertableusermodifypswvarchar(32)aftername;、删除表字段......