当前位置: 首页 > backend >正文

大数据学习(131)-Hive数据分析函数总结

​​​​🍋🍋大数据学习🍋🍋

🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。
💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博主哦🤞


1.CAST函数用于将一种数据类型的表达式显式转换为另一种数据类型。它的语法如下:

CAST(expression AS data_type)

其中,expression是任何有效的SQL表达式,data_type是目标数据类型。

CURRENT_DATE 函数是 SQL 中的一个日期/时间函数,用于返回当前的本地日期。它不带任何参数,并且返回的数据类型为 DATE。

3.to_date函数用于将字符串转换为日期类型。与to_date相对应的是to_char函数,它将日期类型转换为字符串类型。这在需要将日期数据转换为特定格式的字符串时非常有用。

SELECT to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') FROM dual; -- 将当前日期转换为字符串

4.LEAD() 函数 是一种窗口函数,允许您从当前行向前查看多行并访问这些行的数据。它对于计算同一结果集中当前行和后续行之间的差异非常有用。与 LAG() 函数类似,LEAD() 函数可以帮助我们在查询结果中进行行间偏移。

语法:

LEAD(<expression>[, offset[, default_value]]) OVER (PARTITION BY <expr> ORDER BY <expr>)

expression: LEAD() 函数返回的值。

offset: 从当前行向前的行数,必须是非负整数。如果省略,默认值为 1。

default_value: 如果没有后续行,则返回的默认值。如果未指定,默认返回 NULL。

5.concat函数用于将多个字符串连接成一个字符串。如果有任何一个参数为NULL,则返回值为NULL。

示例

SELECT CONCAT('Hello', ' ', 'World') AS result;

-- 结果: Hello World

CONCAT_WS函数

CONCAT_WS函数是CONCAT的特殊形式,用于在连接字符串时指定分隔符。第一个参数是分隔符,后面的参数是要连接的字符串。

示例

SELECT CONCAT_WS('-', '2023', '08', '15') AS result;

-- 结果: 2023-08-15

注意事项

CONCAT函数如果有任何一个参数为NULL,则返回值为NULL。

CONCAT_WS函数会忽略任何分隔符参数后的NULL值,但不会忽略空字符串。

6.

1、RANK()

在计算排序时,若存在相同位次,会跳过之后的位次。

例如,有3条排在第1位时,排序为:1,1,1,4······

2、DENSE_RANK()

这就是题目中所用到的函数,在计算排序时,若存在相同位次,不会跳过之后的位次。

例如,有3条排在第1位时,排序为:1,1,1,2······

7.date_format函数用于格式化日期时间,将日期按照指定的格式输出。这个函数非常有用,尤其是在处理大数据时,需要将日期转换为特定格式以便于分析和展示。

语法:

date_format(date, format):

其中date参数是合法的日期,format参数是规定日期输出的格式。

8.在使用DATEDIFF函数时,你需要指定三个参数:datepart、startdate和enddate。datepart参数决定了返回值的时间单位,可以是年(year)、季度(quarter)、月(month)、周(week)、日(day)、小时(hour)、分钟(minute)、秒(second)等。startdate和enddate则是你要比较的两个日期。

以下是一些DATEDIFF函数的使用示例:

-- 计算两个日期之间相差的年数

SELECT DATEDIFF(year, '2010-12-31', '2019-01-01') AS YearDiff;

-- 计算两个日期之间相差的月数

SELECT DATEDIFF(month, '2018-01-01', '2019-01-01') AS MonthDiff;

9.TRUNC 函数也可以用于截断日期到指定的时间单位。其语法格式如下:

TRUNC(date, [fmt])

date:需要截断的日期。

fmt:指定截断的时间单位,默认为天。

常见的时间单位包括:

'YYYY':截断到年。

'MM':截断到月。

'DD':截断到天。

'HH':截断到小时。

'MI':截断到分钟。

10.EXTRACT() 函数的基本用法:

EXTRACT() 函数接受两个参数:时间单位和要从中提取的日期时间值。

时间单位可以是年份 (YEAR)、月份 (MONTH)、日期 (DAY)、小时 (HOUR)、分钟 (MINUTE)、秒钟 (SECOND) 等等。

返回提取出的指定时间单位的值。

http://www.xdnf.cn/news/12387.html

相关文章:

  • 金融系统渗透测试
  • 【Kotlin】协程
  • .net 使用MQTT订阅消息
  • 使用React+ant Table 实现 表格无限循环滚动播放
  • 【Oracle APEX开发小技巧12】
  • 使用VuePress2.X构建个人知识博客,并且用个人域名部署到GitHub Pages中
  • 基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
  • CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
  • stylus - 新生代CSS预处理框架
  • vue-video-player视频保活成功确无法推送问题
  • 爆炸仿真的学习日志
  • 在MyBatis中设计SQL返回布尔值(Boolean)有几种常见方法
  • Web攻防-SQL注入二次攻击堆叠执行SQLMAPTamper编写指纹修改分析调试
  • 《基于Apache Flink的流处理》笔记
  • Python Einops库:深度学习中的张量操作革命
  • 体制内 AI写作:推荐材料星 AI文章修改润色
  • MySQL:忘记root密码
  • GPU 图形计算综述 (三):可编程管线 (Programmable Pipeline)
  • 【动手学MCP从0到1】2.3 MCP中的Resource和Resource Template服务构建步骤详解
  • 建筑设备一体化监控系统:提升能效与运维效率
  • MySQL 的 redo log 和 binlog 区别?
  • 为 ESP32 解锁跨平台存储识别能力:支持 FAT、NTFS、EXT4、APFS 的轻量级 BlockFS 组件
  • Java中的阻塞队列
  • [arthas]arthas安装使用
  • NVM!(可以快速替换你的node版本)
  • Mysql主从复制原理分析
  • 高性能分布式消息队列系统(三)
  • CVE-2020-17518源码分析与漏洞复现(Flink 路径遍历)
  • AtCoder 第408​场初级竞赛 A~E题解
  • 强化学习入门:Gym实现CartPole随机智能体