2026年nlst命令(nls_timestamp_tz_format)

nlst命令(nls_timestamp_tz_format)show functions nbsp nbsp 查看所有的函数 desc function functionName 查看某个具体的函数如何使用 1 current date nbsp nbsp nbsp nbsp 当前系统日期 nbsp nbsp nbsp nbsp nbsp nbsp 格式 yyyy MM dd 2 current timestamp nbsp nbsp 当前系统时间戳 nbsp nbsp nbsp 格式 yyyy MM dd HH mm ss ms 3 unix timestamp



show functions;   --查看所有的函数

desc function functionName; -查看某个具体的函数如何使用

1.current_date();        #当前系统日期        格式:"yyyy-MM-dd"

2.current_timestamp();    #当前系统时间戳:    格式:"yyyy-MM-dd HH:mm:ss.ms"

3.unix_timestamp();    #当前系统时间戳    格式:距离1970年1月1日0点的秒数。

4.from_unixtime #时间戳转日期函数

5.#计算时间差函数

datediff()   #数据是前面的时间减去后面的时间,相差的天数

months_between()   #前面的时间减去后面时间的月数 ,可以精确到小数

6.date_add() #日期相加

7.date_sub  #日期相减

8.add_months() #月份相加

9.year()、month()、day()、hour()、minute()、second()  # 日期时间分量函数

10.last_day()、next_day() # 日期定位函数

11.to_date() #字符串转日期

12.date_format() #将日期转为字符串

   窗口函数(Window Functions)是 SQL 中的一种特殊类型的函数,用于在一组相关行上进行计算,而不是在整个表上进行计算。窗口函数允许你在不改变数据集的情况下,对数据进行聚合和排序等操作。这使得窗口函数在处理复杂的数据分析任务时非常有用。

order.txt

建表并且加载数据

在over窗口中进行分组,对某一字段进行分组统计,窗口大小就是同一个组的所有记录

语法: over(distribute by colname[,colname.....])

需求:查看顾客的购买明细及月购买总额

select *,sum(cost) over(distribute by substr(orderdate,1,7) ) from t_order ;

sort by子句会让输入的数据强制排序 (强调:当使用排序时,窗口会在组内逐行变大

语法:  over([distribute by colname] [sort by colname [desc|asc]])

需求:查看顾客的购买明细及每个顾客的月购买总额,并且按照日期降序排序

select *,sum(cost) over(distribute by name,month(orderdate) sort by orderdate desc ) from t_order ;

可以使用partition by + order by 组合来代替distribute by+sort by组合 

select *,sum(cost) over(partition by name,month(orderdate) order by orderdate desc ) from t_order ;

ntile 是Hive很强大的一个分析函数。可以看成是:它把有序的数据集合 平均分配 到 指定的数量(num)个桶中, 将桶号分配给每一行。如果不能平均分配,则优先分配较小编号的桶,并且各个桶中能放的行数最多相差1

ag返回当前数据行的前第n行的数据

语法:lag(colName,n[,default value]): 取字段的前第n个值。如果为null,显示默认值

lead返回当前数据行的后第n行的数据

需求:查询顾客上次购买的时间

select * ,lag(orderdate,1) over( partition by name order by orderdate ) from t_order;

first_value 取分组内排序后,截止到当前行,第一个值

last_value 分组内排序后,截止到当前行,最后一个值

stu_score.txt

建表加载数据

load data local inpath '/home/hivedata/stu_score.txt' overwrite into table stu_score;

row_number从1开始,按照顺序,生成分组内记录的序列,row_number()的值不会存在重复,当排序的值相同时,按照表中记录的顺序进行排列

需求:获取每次考试的排名情况

 生成数据项在分组中的排名,排名相等会在名次中留下空位

 需求:获取每次考试的排名情况

生成数据项在分组中的排名,排名相等会在名次中不会留下空位

需求:对每个班级的每次考试按照考试成绩倒序

select *,dense_rank() over(partition by classno order by  score desc) from stu_score;

今天的文章 2026年nlst命令(nls_timestamp_tz_format)分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2026-03-26 10:46
下一篇 2026-03-26 11:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/58486.html